题目描述
编程实现希尔排序算法,按照非递减排序,测试数据为整数。
输入
第一行是待排序数据元素的个数n; 第二行是待排序的数据元素。输出
一趟希尔排序后的结果。样例输入
10 50 36 41 19 23 4 20 18 12 22样例输出复制
4 20 18 12 22 50 36 41 19 23#includeint main() { int n; scanf("%d", &n); int i; int a[100]; for (i = 0; i < n; i++) { scanf("%d", &a[i]); } int num = n / 2; int key, j; for (i = num; i < n; i++) { key = a[i]; for (j = i; j >= num && a[j - num] > key; j -= num) { a[j] = a[j - num]; } a[j] = key; } for (i = 0; i < n; i++) { if (i == n - 1) { printf("%dn", a[i]); } else { printf("%d ", a[i]); } } return 0; }



