题目描述
编程实现希尔排序算法,按照非递减排序,测试数据为整数。
输入
第一行是待排序数据元素的个数n; 第二行是待排序的数据元素。输出
一趟希尔排序后的结果。样例输入
10 50 36 41 19 23 4 20 18 12 22样例输出复制
4 20 18 12 22 50 36 41 19 23#include<stdio.h> int 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("%d\n", a[i]); } else { printf("%d ", a[i]); } } return 0; }
SWUST OJ1099: 希尔排序算法实现
最新推荐文章于 2024-08-03 12:30:52 发布