希尔排序
Posted oscarwin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序相关的知识,希望对你有一定的参考价值。
1 /************************************************************************/ 2 /* 希尔排序,称为增量排序更好记忆 3 /* 增量选取为N/2,虽不是个好的增量,但是便于理解 4 /************************************************************************/ 5 #include <stdio.h> 6 7 void ShellSort(int * array, int size) 8 { 9 int Gap, i, j; 10 int tmp; 11 for(Gap = size / 2; Gap > 0; Gap /= 2) 12 { 13 for(i = Gap; i < size; i += Gap) 14 { 15 tmp = array[i]; 16 for(j = i; array[j - Gap] > tmp && j > 0; j -= Gap) 17 { 18 array[j] = array[j - Gap]; 19 } 20 array[j] = tmp; 21 } 22 } 23 } 24 25 26 int main() 27 { 28 int Array[10] = {5, 45, 36, 48, 20, 17, 84, 201, 92, 54}; 29 for (int index = 0; index < 10; ++index) 30 { 31 printf("%d ", Array[index]); 32 } 33 34 ShellSort(Array, 10); 35 36 printf("\r\n"); 37 38 for (int index = 0; index < 10; ++index) 39 { 40 printf("%d ", Array[index]); 41 } 42 return 0; 43 }
以上是关于希尔排序的主要内容,如果未能解决你的问题,请参考以下文章