希尔排序
void shellsort(int v[],int n)
{
int gap,i,j,temp;
for (gap = n/2; gap >= 1; 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;
}
}
上面的代码可以修改,第二层循环可以写成for(i = 0; i < n-gap; i++)然后下一城循环 for(j = i; j>=0 && v[j]>v[j+gap]; j -= gap),当步长为gap时,整个数组会被分割成gap组,由于每组的第一个数据不用排序,所以需要排序的数据仅仅为n-gap个
點(diǎn)擊查看更多內(nèi)容
4人點(diǎn)贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦