算法-插入排序
来源:互联网 发布:算法的确定性指的是 编辑:程序博客网 时间:2024/06/05 19:22
插入排序
将一张牌插入到已经有顺序的牌中的适当位置。
插入排序与数组的初始输入顺序有关系,对于一个很大且其中的元素已经有序或接近有序的数组进行排序将会比随机顺序的数组或是逆序数组进行排序快得多。
public static int[] SortInsert(int[] a) { int n = a.Length; for (int i = 1; i < n; i++) { for (int j = i; j >0 && a[j] < a[j - 1]; j--)//对于顺序已经进行过的排序时间会很短 execArray(ref a, j, j - 1); } return a; }
对于随机排列的长度为N且主键不重复的数组,平均情况下插入排序需要~N*N/4次比较以及N*N/4次交换。最坏情况下需要N*N/2次比较和N*N/2次交换,最好情况下需要N-1次比较和0次交换。
典型的数组为:
1、数组中每个元素距离它的最终位置不远
2、一个有序的大数组接一个小数组
3、数组中只有几个元素的位置不正确
阅读全文
0 0
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法---插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法---插入排序
- 排序算法--插入排序
- 排序算法--插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 卷积神经网络学习--卷积和池化
- @Retention、RetentionPolicy源码翻译
- JavaScript的this指向问题深度解析
- 使用sonar进行java代码质量管理
- android 6.0 以上版本不显示按钮文字
- 算法-插入排序
- 通过python读取ini配置文件
- [Oracle]Merge Into
- [APP开发技巧] 【分享】JS通过Ajax调用数据云API的REST接口的方法
- python/数组的操作
- TabLayout(结合viewpager进行联动,平移)的使用
- 算数运算符
- 《LwIP协议栈源码详解——TCP/IP协议的实现》以太网数据接收
- LVM逻辑卷的添加、拉伸、缩小、删除、move操作