空间复杂度 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 = stringlet array = string.split(',')let resultString = directInsertSort(array)let result = document.querySelector('#result')result.innerHTML = resultString.join(',')function directInsertSort(array) {let indexlet resultArray = []let valuefor (let i = 0; i < array.length; i++) {if (resultArray.length === 0) {resultArray[0] = array[i]} else {value = array[i]index = resultArray.length - 1while (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 valuelet indexif(arr.length===0) return afor(let i = 0;i<arr.length;i++){if(a.length===0){a[0] = arr[0]}else{value = arr[i]index = a.length - 1while(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)
