//插入排序:每次将遍历到的元素插入前面合适的位置
//复杂度:时间O(n2) 空间O(1)
//交换次数O(n2)
//稳定性:稳定
function insertSort(arr){
let tmp;
for (let i=0;i<arr.length;i++){
tmp=arr[i]//当前遍历到的元素
//插入到合适的位置
for (let j=i;j>0;j--){
if (arr[j]<arr[j-1]){
arr[j]=arr[j-1]
arr[j-1]=tmp
}
}
}
return arr
}
console.log(insertSort([5, 4, 3, 2, 1]));
相关文章
- 02-21排序_插入排序_希尔排序
- 02-21内排序:冒泡排序、简单选择排序、直接插入排序、希尔排序、堆排序、快速排序介绍及C语言实现
- 02-21vue基本知识—3.生命周期
- 02-21阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
- 02-21阶段5 3.微服务项目【学成在线】_day18 用户授权_04-方法授权-方法授权实现
- 02-21剑指Offer 3. 从尾到头打印链表 (链表)
- 02-21[剑指Offer] 3.从尾到头打印链表
- 02-21Shader笔记——3.渲染纹理
- 02-21排序——插入排序(Insertion sort)
- 02-21FESTUNG — 3. 采用 HDG 方法求解对流问题