| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 908 人关注过本帖
标题:郁闷了,shellsort~
取消只看楼主 加入收藏
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
结帖率:33.33%
收藏
 问题点数:0 回复次数:3 
郁闷了,shellsort~
初始增量的不同,排序可能不能完成.....这是怎么回事?在怎么看,最差的时候inc=1,s=0就当一般插入排序进行,但是却没完成排序//
void subsort(int* arr,int size_a,int inc,int s)
{
    for(int i=s+inc;i<size_a;i+=inc)
    {
        int key = arr[i];
        int j=i-inc;
        for(;j>=s&&arr[j]>key;)
        {
            arr[j+inc]=arr[j];
             j-=inc;
        }
        arr[j+inc]=key;
    }
}
void shellSort(int* arr,int size_a)
{
  
  int inc=size_a;
  do{
      inc=inc/3+1;
       for(int s=0;s<inc;++s) subsort(arr,size_a,inc,s);
  }while(inc>1);
}

[[it] 本帖最后由 中学者 于 2008-5-8 20:06 编辑 [/it]]
搜索更多相关主题的帖子: int arr shellsort key size 
2008-05-08 19:25
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
不才,没懂~shell排序不是插入排序的简单扩展么?

樱花大战,  有爱.
2008-05-08 19:49
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
它的核心部分还是用的插入排序嘛.....和冒泡应该没关吧?

樱花大战,  有爱.
2008-05-08 19:56
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
思维停滞了,错误找到了

樱花大战,  有爱.
2008-05-08 20:07
快速回复:郁闷了,shellsort~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023528 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved