首页 > 代码库 > 希尔排序
希尔排序
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 }
希尔排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。