这是插入排序吗?我真的不太清楚。

 这是运行结果,下面是代码。

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");
			}
		}
	}
}

///:~
发布了159 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_39410618/article/details/90690767