简单的插入排序
来源:互联网 发布:微星fps软件 编辑:程序博客网 时间:2024/05/12 09:12
算法思想
将记录 i 插入到 i-1 个已经排好序的记录中。
具体操作:将记录i 顺次和前面的记录i-1,i-2,i-3…进行比较,将所有大于记录i 的记录向后
移动一个,直到遇见小于或等于记录i的记录j,此时记录j后必有一个空位,将记录i放置于此。
实现
//将需要排序的数据从下标1开始放置,a[0]用于记录当前排序的数据,还可以放置数组的越界问题void insertSort(int a[], int length) { //这里从第二个记录开始排序,因为第1个不需要排序。 int i = 2; for (; i <= length; i ++) { //记录当前排序数据,并防止了数组的越界 a[0] = a[i]; //从已经排好序的最后一个依次向前比较 int j = i - 1; while(a[0] < a[j]) { a[j+1] = a[j]; //j的值最小是0,当j为0时,循环退出。防止了越界 j --; } a[j+1] = a[0]; } }
总结
1、使用a[0]作为监视哨,即保存了数据,又防止越界
2、需要从后向前比较
0 0
- 简单的插入排序
- 简单的插入排序
- 简单的插入排序
- 简单的插入排序
- 简单的插入排序
- 简单的排序---插入排序
- 插入排序的简单实现
- 简单的插入排序代码
- 简单的直接插入排序
- 插入排序的简单实现
- 插入排序的简单实现
- 插入排序的简单认识。
- 简单排序--插入排序
- 简单排序--插入排序
- 简单排序:插入排序
- 简单的冒泡排序、插入排序、查找排序算法
- 冒泡排序、插入排序、快速排序的简单实现
- 算法导论P10 简单的插入排序
- 通过JS修改日期格式
- jquery 1.9里面已经删除了toggle
- [zz]css绝对定位、相对定位和文档流的那些事
- jersey 1.x 拦截器配置
- Range {2147483648, 4294967295} out of bounds;
- 简单的插入排序
- Android 日历CalendarProvider
- 多个EditText之间的光标自动移动
- 做一个合格的程序员需要具备哪些素质?
- 数据库索引介绍
- Light OJ:1328 A Gift from the Setter(数学)
- android 获取网页内容
- RxAndroid 进行封装实现替代Handler的方案
- FindBugs