See More

#include void insertSort(int *a, int count, int step); void showArray(int *a, int count); void shellSort(int *a, int count); void shellSort(int *a, int count){ int step; for(step = count/2; step > 0; step /= 2){ insertSort(a, count, step); } } void showArray(int *a, int count){ int i; for(i = 0; i < count; i++){ printf("%d ", a[i]); } printf("\n"); } //ÒÔϾÍÊDzåÈëÅÅÐòÁË£¬Ë¼ÏëÍêȫһÑù£¬Ö»²»¹ý²½³¤Îªstep¶øÒÑ£¡£¡£¡ void insertSort(int *a, int count, int step){ int i; int j; int n; int tmp; for(i = step; i < count; i+=step){ tmp = a[i]; for(j = 0; a[i]>a[j] && j j; n-=step){ a[n] = a[n-step]; } a[j] = tmp; } } } void main(void){ int a[] = {2, 7, 1, 11, 0, 9, 8, 10}; int count = sizeof(a)/sizeof(int); printf("ÅÅÐòǰÊä³öÈçÏÂ: "); showArray(a, count); shellSort(a, count); printf("ÅÅÐòºóÊä³öÈçÏÂ: "); showArray(a, count); }