这是运行结果,下面是代码。
F:\Thinking in C++\sims>test10
50 -1 3 1000 84447 90 277 0 -9 20
a[1](50) <--> a[0](-1)
-1 50 3 1000 84447 90 277 0 -9 20
a[2](50) <--> a[1](3)
-1 3 50 1000 84447 90 277 0 -9 20
a[5](84447) <--> a[4](90)
-1 3 50 1000 90 84447 277 0 -9 20
a[4](1000) <--> a[3](90)
-1 3 50 90 1000 84447 277 0 -9 20
a[6](84447) <--> a[5](277)
-1 3 50 90 1000 277 84447 0 -9 20
a[5](1000) <--> a[4](277)
-1 3 50 90 277 1000 84447 0 -9 20
a[7](84447) <--> a[6](0)
-1 3 50 90 277 1000 0 84447 -9 20
a[6](1000) <--> a[5](0)
-1 3 50 90 277 0 1000 84447 -9 20
a[5](277) <--> a[4](0)
-1 3 50 90 0 277 1000 84447 -9 20
a[4](90) <--> a[3](0)
-1 3 50 0 90 277 1000 84447 -9 20
a[3](50) <--> a[2](0)
-1 3 0 50 90 277 1000 84447 -9 20
a[2](3) <--> a[1](0)
-1 0 3 50 90 277 1000 84447 -9 20
a[8](84447) <--> a[7](-9)
-1 0 3 50 90 277 1000 -9 84447 20
a[7](1000) <--> a[6](-9)
-1 0 3 50 90 277 -9 1000 84447 20
a[6](277) <--> a[5](-9)
-1 0 3 50 90 -9 277 1000 84447 20
a[5](90) <--> a[4](-9)
-1 0 3 50 -9 90 277 1000 84447 20
a[4](50) <--> a[3](-9)
-1 0 3 -9 50 90 277 1000 84447 20
a[3](3) <--> a[2](-9)
-1 0 -9 3 50 90 277 1000 84447 20
a[2](0) <--> a[1](-9)
-1 -9 0 3 50 90 277 1000 84447 20
a[1](-1) <--> a[0](-9)
-9 -1 0 3 50 90 277 1000 84447 20
a[9](84447) <--> a[8](20)
-9 -1 0 3 50 90 277 1000 20 84447
a[8](1000) <--> a[7](20)
-9 -1 0 3 50 90 277 20 1000 84447
a[7](277) <--> a[6](20)
-9 -1 0 3 50 90 20 277 1000 84447
a[6](90) <--> a[5](20)
-9 -1 0 3 50 20 90 277 1000 84447
a[5](50) <--> a[4](20)
-9 -1 0 3 20 50 90 277 1000 84447
F:\Thinking in C++\sims>
//: test07.c
// 这是插入排序吗?我真的不太清楚。
#include <stdio.h>
#define L 10
int main(void) {
int a[L] = {50, -1, 3, 1000, 84447, 90, 277, 0, -9, 20}, i, j, k, tmp;
for(k = 0; k < L; k++) {
printf("%d ", a[k]);
}
printf("\n");
for(i = 1; i < L; i++) {
for(j = i - 1; j < i && j >= 0; j--) {
if(a[j] > a[j + 1]) {
tmp = a[j + 1];
a[j + 1] = a[j];
a[j] = tmp;
printf("a[%d](%d) <--> a[%d](%d)\n", j + 1, a[j + 1], j, a[j]);
for(k = 0; k < L; k++) {
printf("%d ", a[k]);
}
printf("\n");
}
}
}
}
///:~