算法导论学习笔记(一)排序算法之插入排序
来源:互联网 发布:中国废除汉字知乎 编辑:程序博客网 时间:2024/05/22 14:06
插入排序是一种较为经典的排序算法,它的思想是将一个数插入到一组有序数列中,使得插入后的数列仍为有序数列。依据这一算法思想可以得出:在改数插入前和插入后,所在数列均为有序数组,所变化的只是数列的长度。
所以就产生了一个循环不变式:有序数列,插入新数,仍为有序数列,再插入……
算法导论上列举了如下伪代码
INSERTION-SORT(A) for j = 2 to A.length key = A[j] //Insert A[j] into the sorted sequence A[1..j - 1]. i = j-1 while i>0 and A[i] > key A[i+1] = A[i] i = i-1 A[i+1] = key
内层循环while循环的作用是保持数列有序,而外层循环的作用是将新数逐个加入到有序数列中,由此完成算法。
代码片段如下
void insertSort(int *insertSortArray,int length){ for(int flag=1;flag<length;flag++){ int key = insertSortArray[flag]; int iteratorFlag = flag-1; while(iteratorFlag >= 0 && insertSortArray[iteratorFlag] > key){ insertSortArray[iteratorFlag+1] = insertSortArarry[iteratorFlag]; iteratorFlag--; } insertSortArray[iteratorFlag+1] = key; }}
0 0
- 插入排序-《算法导论》学习笔记一
- 算法导论学习笔记(一)排序算法之插入排序
- 算法导论学习笔记(一):插入排序
- 算法导论排序算法之插入排序(一)
- 算法导论学习笔记(一)排序算法之快速排序
- 算法导论学习笔记(一)排序算法之堆排序
- 插入排序-算法导论学习笔记
- 算法导论笔记之---插入排序
- 算法导论学习之插入排序
- 算法导论学习笔记(一)排序算法之计数排序
- 算法导论学习笔记(一)排序算法之分治排序
- 【算法导论】笔记--插入排序
- 重温算法导论(一) 插入排序
- 算法导论学习笔记(1)插入排序
- 插入排序-算法导论学习
- 算法导论之插入排序
- 《算法导论》之:插入排序
- 算法导论之插入排序
- zTree -- jQuery 树插件在oneThink中的应用
- iOS 用CGContextRef画虚线
- 基础篇_浅谈Android 布局
- pymssql登陆本地sql server 服务器
- 理解JavaScript中的事件轮询
- 算法导论学习笔记(一)排序算法之插入排序
- PB动态SQL语句
- 【JAVA/读书随笔】Chapter 22 算法效率
- 苹果设备3.5英寸,4英寸,4.7英寸,5.5英寸屏幕像素指南
- 配置https双向认证过程实战(tomcat和浏览器交互)
- uva 548
- poj1836
- 视音频数据处理入门:FLV封装格式解析
- 构建工具之---ant