希尔排序

代码如下:

void Shell_sort(int a[],int         n){
	for(d=n/2;d>0;d/=2){
		for(i=d;i<n;i++){ //这里类似于插入排序
		temp=a[i];
		for(p=i;p>=d;p-=d){
			if(a[p-d]>temp){
              a[p]=a[p-d];			
			}
		}
		a[p]=temp;
		}
	}
}

注意:(1).定义增量序列DM DM-1...直到1

(2).对每个DK 进行DK-1间隔排序

(3).对DK-1进行排序,DK仍然是有序的希尔
排序也有缺点:比如增量元素不互质,导致小的增量根本不起作用

©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值