您的位置:首页 > 其它

希尔排序

2011-11-09 10:46 169 查看
shell sort version1

void shell_sort(int array, int length){
int I, j, increment;
int tmp;
for (increment = length/2; increment>0; increment/=2) //控制两个被比较元素间的距离
for(i=increment; i<length; i++) //元素间的移位
for(j=I; j>0; j-=increment){  //用于比较相距increment个位置的元素
tmp = array[i];
if (array[j]<array[j-increment])
array[j] = array[j-increment];
else
break;
array[j-increment] = tmp;
}
}


2. shell sort version2

void shell_sort(int array[], int length){
int gap, I, j;
int tmp;
for (gap=length/2, gap>0; gap/=2) //控制两个被比较元素间的距离
for(i=gap; i<length; i++)  //元素间的移位
for(j=I-gap; j>0; j-=gap)  //用于比较相距increment个位置的元素
if (array[j]>array[j+gap])
swap
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: