排序算法复习—希尔排序
生活随笔
收集整理的這篇文章主要介紹了
排序算法复习—希尔排序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
希爾排序,也稱遞減增量排序算法,是插入排序的一種更高效的改進(jìn)版本。
希爾排序?qū)⒄麄€(gè)待排元素序列分割成若干個(gè)子序列(由相隔某個(gè)“增量”的元素組成的)分別進(jìn)行直接插入排序,過程中較小的元素,跳躍式的往前移。然后依次縮減增量再進(jìn)行排序,待整個(gè)序列中的元素基本有序(增量足夠小)時(shí),再對(duì)全體元素進(jìn)行一次直接插入排序。
舉個(gè)例子,如下:
1 int a[]={2,5,8,4,6,3,1,9,7,55}; 2 int length=sizeof(a)/sizeof(int); 3 int i,j,gap; 4 5 for(gap=length/2; gap>0; gap /= 2)//步長(zhǎng) 6 { 7 for(i=gap;i<length;i++) //直接插入排序的gap始終為1 8 { 9 if(a[i]<a[i-gap]) 10 { 11 int key=a[i]; 12 for(j=i-gap;j>=0&&a[j]>key;j-=gap) 13 { 14 a[j+gap]=a[j]; 15 } 16 a[j+gap]=key; 17 } 18 } 19 }?
?
轉(zhuǎn)載于:https://www.cnblogs.com/supercell/p/3613700.html
總結(jié)
以上是生活随笔為你收集整理的排序算法复习—希尔排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原神3.2虚空鼓动劫火高扬任务怎么过
- 下一篇: 北京环球影城身份证丢了怎么进