编写一个C语言程序,利用指针对数组进行排序

如题所述

#include <stdio.h>
#include <stdlib.h>
#include <time.h>#define MAXlen 20void shell_sort(int *x, int n) { // 希尔排序
int h, j, k, t;
for (h = n / 2; h > 0; h = h / 2) { // 控制增量
for (j = h; j < n; j++) { t = *(x + j);
for (k = j - h; (k >= 0 && t < *(x + k)); k -= h) {
*(x + k + h) = *(x + k);
}
*(x + k + h) = t;
}
}
}
int main() {
int i;
int iArr[MAXlen];
srand((unsigned int)time(NULL));
printf("\n排序前:\n");
for(i = 0 ; i < MAXlen ; i++) {
iArr[i] = (unsigned int)rand() % 1000;
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n");
shell_sort(iArr,MAXlen);
printf("\n排序后:\n");
for(i = 0 ; i < MAXlen ; i++) {
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网