void InsertSort(ElemType A[], int n) {
int i, j;
for (i = 2; i <= n; i++) {
if (A[i].key < A[i-1].key) { //当前的值比前一个小
A[0] = A[i]; //将不在顺序的数取出
for (j = i - 1; A[0].key < A[j].key; j--) { //从当前位置向前面检索,直到该位置刚好比前一个大,比下一个小,比这个数大的需后移
A[j + 1] = A[j]; //大数后移
}
A[j + 1] = A[0]; //跳出循环的条件是A[0].key >= A[j].key,说明前一个位置的数比该数小,j需后退一个,j所指向的是那个小的数(进行比较的数)
}
}
}
直接插入排序
最新推荐文章于 2024-09-27 11:17:47 发布