<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function directInsertSort(arr){
let len = arr.length;
for( let i=1; i<len; i++ ){
if( arr[i] < arr[i-1] ){
let temp = arr[i];
arr[i] = arr[i-1];
for( var j=i-2; arr[j]>temp; j-- ){
arr[j+1] = arr[j];
}
arr[j+1] = temp;
}
}
return arr;
}
console.log(directInsertSort([7, 8, 5, 4, 9, 2, 1, 5, 3]));
</script>
</body>
</html>
空间上除了原有数组占得空间外,多使用了一个temp的空间
时间复杂度较高 O(n^2)
两层循环实现
先比较前两个,放到数组前两个位置,再接着往后拿数据,与之前的数据从右往左比较