版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/FTD_SL/article/details/84939505
基本概念
直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已经排序好的有序表中,从而得到一个新的、记录数增1的有序表。
java代码实现
/* 申明待排序数组 */
int[] a = {9,1,5,8,3,7,4,6,2};
int i,j;
int flag;
for (i = 1; i < a.length; i++) {
flag = a[i]; /* 设置哨兵(当前记录) */
if (a[i] < a[i-1]) { /* 当前关键字小于前一个关键字,需要将当前记录往前插入 */
for (j = i-1; j >= 0 && a[j] > flag; j--) { /* 循环遍历当前关键字之前的所有关键字,并与哨兵比较,若大于哨兵,则记录后移 */
a[j+1] = a[j]; /* 记录后移 */
}
//伪代码 a[j] = flag; 因为j循环最后执行j--,故这边j需+1
a[j+1] = flag; /* 将哨兵插入正确位置 */
}
}