好多好多排序
来源:互联网 发布:涉黄网络犯罪 编辑:程序博客网 时间:2024/04/27 11:02
插入排序
直接插入排序
直接插入排序的基本思想:
每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止
先留下第一个数a[0],从a[1]开始看
每次a[i]先和前面一个数据a[i-1]进行比较
因为a[0...i-1]是有序的,a[i]>a[i-1]时,说明a[0..i]也是有序的,无需调整
如果a[i]<a[i-1],就要将a[i]插入到前面的有序区间,这里再用一个j来操作
如果a[j]前一个数据a[j-1] > a[j],就交换a[j]和a[j-1],再j--直到a[j-1] <= a[j],
(要插入的数只要还小就继续交换向前在接着比较)
public void Insertsort(int[] a,int n){for(int i=1;i<n;i++){for(int j=i-1;j>=0&&a[j]>a[j+1];j--){int temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}
直接插入排序的算法性能
时间复杂度
当数据正序时,执行效率最好,每次插入都不用移动前面的元素,时间复杂度为O(N)。
当数据正序时,执行效率最好,每次插入都不用移动前面的元素,时间复杂度为O(N)。
当数据反序时,执行效率最差,每次插入都要前面的元素后移,时间复杂度为O(N2)。
所以,数据越接近正序,直接插入排序的算法性能越好。
空间复杂度
由直接插入排序算法可知,我们在排序过程中,需要一个临时变量存储要插入的值,所以空间复杂度为 1 。
算法稳定性
直接插入排序的过程中,不需要改变相等数值元素的位置,所以它是稳定的算法。
空间复杂度
由直接插入排序算法可知,我们在排序过程中,需要一个临时变量存储要插入的值,所以空间复杂度为 1 。
算法稳定性
直接插入排序的过程中,不需要改变相等数值元素的位置,所以它是稳定的算法。
0 0
- 好多好多排序
- 好多
- 的好多好多好多废话
- 好多 bug 。
- 好多问题????
- 美女--好多
- 资源好多
- 资源好多
- 好多QT
- 好多源码
- 好多考试
- 好多目标
- 好多鱼!
- 好多鱼!
- 好多鱼
- 归并排序比冒泡排序快上好多倍
- 堆排序(用了好多的位运算)
- 看了好多,享受了好多
- opencv代码段1
- c++中的成员访问级别和派生继承方式
- VC++学习笔记
- 整数数据类型表示范围与位运算
- 【BZOJ2251】外星联络 后缀数组
- 好多好多排序
- GCC命令总结
- 23种设计模式(13):迭代器模式
- jQuery选择器大全
- UVA - 11991 Easy Problem from Rujia Liu?【STL】
- leetcode (31) Next Permutation
- CentOS 基于Kickstart自动化安装
- 网页打印表单js代码
- javascript的 Source Map