简单的希尔排序

广告位

8   1、输入N和N个整数关键字; 2、完成希尔排序,并输出排序结果,输出结果每个关键字之间用一个…

8

 

1、输入N和N个整数关键字;
2、完成希尔排序,并输出排序结果,输出结果每个关键字之间用一个空格分隔。

例如:

【输入】
7
4 2 6 1 8 9 3

【输出】
1 2 3 4 6 8 9


#include <stdio.h> #include <stdlib.h>  void ShellSort(int a[], int n) {     int i, j, d;     d = n / 2;          while(d >= 1) {     	for(i = d + 1; i <= n; i++)         	if(a[i] < a[i - d]) {             	a[0] = a[i];             	for(j = i - d; j > 0 && a[0] < a[j]; j = j - d)                 	a[j + d] = a[j];             	a[j + d] = a[0];         	}	         d = d / 2;     } }  int main() {     int *a, i, n;     scanf("%d", &n);     a = (int *)malloc(n*sizeof(int));     for(i = 1; i <= n; i++)         scanf("%d", &a[i]);          ShellSort(a, n);          for(i = 1; i <= n; i++)         printf("%d ", a[i]);     printf("n");     return 0; } 

 

說着敷衍話

关于作者: 說着敷衍話

为您推荐