排序三 直接插入排序
来源:互联网 发布:淘宝图库素材网 编辑:程序博客网 时间:2024/06/06 09:44
直接插入排序(Straight Insertion Sort)
直接插入排序:每步将一个待排序的记录,按其关键字的大小插到前面已经排序的序列中的适当位置,直到全部记录插入完毕为止。—百度百科
- 时间复杂度:最好 O(n)=O(n);平均O(n)=O(n²);最差O(n)=O(n²)
- 空间复杂度:O(n)=O(1)
- 稳定性: 稳定
算法原理
设数组为a[n],i = 1。
1. a[0..i-1]为有序区,现需要插入a[i]到a[0…i-1]。
2. 用a[i]的值与a[1..n-1]中元素进行大小比较,找到插入位置将a[i]插入,原插入位置上的元素依次后移。
3. i++。若i < n则执行1。否则排序结束。
图片来自维基百科
直接插入排序示例
数组S: [9,1,5,3,8,7]
第一趟:[(1,9),5,3,8,7] –index=1
第二趟:[(1,5,9,)3,8,7] –index=2
第三趟:[(1,3,5,9),8,7] –index=3
第四趟:[(1,3,5,8,9),7] –index=4
第五趟:[(1,3,5,7,8,9)] –index=5
示例代码
public static InsertSort(int[] S){ for (int i = 1; i < S.Length; i++){ for (int j = i; j > 0 && S[j-1] > S[j]; j--){ S.Swap(j - 1,j); } }}
文中若有什么错误,欢迎留言指正。
转载请保留出处:http://blog.csdn.net/x1060549/article/details/78779093
阅读全文
0 0
- 排序三 直接插入排序
- 排序三 直接插入排序
- 直接插入排序--学习(三)
- 排序算法(三)直接插入排序
- 排序算法(三)直接插入排序
- 排序算法(三)- 直接插入排序
- 排序算法三:直接插入排序
- Java排序算法(三):直接插入排序
- 数据结构之排序(三)直接插入排序
- Java排序三:直接插入排序
- 排序:直接插入排序
- 排序---直接插入排序
- 排序 -- 直接插入排序
- 排序---直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 使用AngularJS和HTML做淘宝的部分基础功能
- python特点
- eclipse快捷键
- Python基础-模块初识
- jquery给textarea取值与重新赋值
- 排序三 直接插入排序
- Backbone入门指南(五):Collection (数据模型集合)
- 学习资源
- js登录记住密码功能
- LSM树由来、设计思想以及应用到HBase的索引
- logback.xml常用配置
- 人脸识别之端到端框架(五)--NormFace
- (二)模型评估与选择
- 友盟第三方分享和登录