Shell排序算法

Shell排序算法是D.L.Shell 於1959年發明的。其基本思想是:先比較距離遠的元素,而不是簡單交換排序算法那樣先比較相鄰的元素。這樣可以快速減少大量的無序情況,從而減輕後續的工作。被比較的元素之間的距離逐步減少,直到減少爲1,這時排序變成了相鄰元素的互換。

Shell排序算法的實現 - 龍舞 - 說吧

 

/*shellsort:sort v[0]...v[n-1] into increasing order*/
#include<stdio.h>
void shellsort(int v[],int n)
{
int gap,i,j,temp;

for(gap=n/2;gap>0;gap/=2)
for(i=gap;i<n;i++)
for(j=i-gap;j>=0&&v[j]>v[j+gap];j-=gap){
temp=v[j];
v[j]=v[j+gap];
v[j+gap]=temp;
}
}
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章