希尔排序
2011-11-09 10:46
169 查看
shell sort version1
2. shell sort version2
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 }