关闭

shell排序

163人阅读 评论(0) 收藏 举报
分类:
希尔排序实现:

void shellsort(vector<int> &nums)
{
	int len=nums.size();
	int gap=len/2;
	int i=0,j=0;
	for (gap=len/2;gap>0;gap/=2)
	{
		for (i=0;i<gap;i++)
		{	
			 for (j=i+gap;j<len;j+=gap)
			 {
				 int tmp=nums[j];
				 int k=j-gap;//先减去再判断,否则循环中再减去为负值
				 for(;k>=0 &&tmp<nums[k];k-=gap)
					 {
						 nums[k+gap]=nums[k];
						  
					 }
					 nums[k+gap]=tmp;
				 }
				 

			 }
			 			 
			 
			 
		}
		 

	}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16453次
    • 积分:550
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:21篇
    • 译文:0篇
    • 评论:2条
    文章分类