空间复杂度 O(n)
<body>
<h3>原始数据</h3>
<div id="originData"></div>
<h3>排序结果</h3>
<div id="result"></div>
<script>
let originDataDiv = document.querySelector('#originData')
let string = '5,4,2,3,1'
originDataDiv.innerHTML = string
let array = string.split(',')
let resultString = directInsertSort(array)
let result = document.querySelector('#result')
result.innerHTML = resultString.join(',')
function directInsertSort(array) {
let index
let resultArray = []
let value
for (let i = 0; i < array.length; i++) {
if (resultArray.length === 0) {
resultArray[0] = array[i]
} else {
value = array[i]
index = resultArray.length - 1
while (resultArray[index] > value && index >= 0) {
resultArray[index + 1] = resultArray[index]
index--
}
resultArray[index + 1] = value
}
}
return resultArray
}
</script>
</body>
改写去重
function directInsertSort(arr){
let a = []
let value
let index
if(arr.length===0) return a
for(let i = 0;i<arr.length;i++){
if(a.length===0){
a[0] = arr[0]
}else{
value = arr[i]
index = a.length - 1
while(a[index]>value&&index>=0){
a[index+1] = a[index]
index--
}
if(a[index]===value){
console.log(a)
a[index+1] = a[index+2]
console.log('index'+index)
a.splice(index+1,1)
console.log(a);
}else{
a[index+1] = value
}
}
}
return a
}
空间复杂度 O(1)