插入到合 适位置y 本轮待插入元素 已排好序部分 未排好序部分 (a)本轮插入前序列状态 已排好序部分 未排好序部分 (b)本轮插入后序列状态
本轮待插入元素 已排好序部分 未排好序部分 插入到合 适位置 (a)本轮插入前序列状态 已排好序部分 未排好序部分 (b)本轮插入后序列状态
注 在排序过程开始时,直接把序 列中第一个元素认为是已排好序部 分。另外,用整型数组代表排序的 数据元素序列,数组下标为零的元 素我们当作辅助空间,所以从数组 下标是1的空间开始存储元素序列
注意: 在排序过程开始时,直接把序 列中第一个元素认为是已排好序部 分。另外,用整型数组代表排序的 数据元素序列,数组下标为零的元 素我们当作辅助空间,所以从数组 下标是1的空间开始存储元素序列
在把待插入元素从未排序部分移入已 排好序部分时,有多种方法,下面逐一介 绍 821直接插入排序 82.2折半插入排序 8232路插入排序 .24.表插入排序 B832.5希尔排序
在把待插入元素从未排序部分移入已 排好序部分时,有多种方法,下面逐一介 绍。 8.2.1 直接插入排序 8.2.2 折半插入排序 8.2.3 2_路插入排序 8.2.4 表插入排序 8.2.5 希尔排序
821直接插入排序 直接插入排序 又称简单插入排序。排序过程 中,待插入元素先放在临时空间 hO1d中,依次让它和前面的元素作 比较,直到发现其应插入的位置,将 其插入
8.2.1 直接插入排序 直接插入排序 又称简单插入排序。排序过程 中,待插入元素先放在临时空间 hold中,依次让它和前面的元素作 比较,直到发现其应插入的位置,将 其插入
//不带哨兵的直接插入排序 //数组rec为待排序的序列, // count为排序元素的个数 void insertSortsimple(int rec[] int count) t int curr hold for(int inx=2 inx<=count inx++) //从第二个元素起依次做插入排序 hold=rec linxi curr=inx-1
//不带哨兵的直接插入排序。 //数组rec为待排序的序列, //count为排序元素的个数 void insertSortSimple(int rec[], int count) { int curr , hold; for(int inx=2; inx<=count; inx++) //从第二个元素起依次做插入排序 { hold=rec[inx]; curr=inx-1;