| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 664 人关注过本帖
标题:归并算法稳定性求解
只看楼主 加入收藏
魏乾坤
Rank: 2
来 自:河南商丘
等 级:论坛游民
帖 子:6
专家分:20
注 册:2011-12-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
归并算法稳定性求解
初始序列
{19 26 52 97}{8 49 66}
一次归并
while((begin1 <= end1)&&( begin2 <= end2))  
    {   
     if(array[begin1] < array[begin2])  
      { temp[k] = array[begin1];
         begin1++;
       }  

 else { temp[k] = array[begin2];  
              begin2++;
             }  
                 k++;  
            }
排序后{8 19 26 49 52 66 97}
如果将8换成19
{19 26 52 97}{19* 49 66}
因为
array[begin1] = array[begin2]
即19=19*
执行 else
排序后应为
{19* 19 26 49 52 66 97}
算法不稳定
哪里出错了?
搜索更多相关主题的帖子: 稳定性 
2011-12-14 11:19
魏乾坤
Rank: 2
来 自:河南商丘
等 级:论坛游民
帖 子:6
专家分:20
注 册:2011-12-14
收藏
得分:0 
怎么没人回啊
2011-12-14 11:26
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:14 
不明白你代码的意思?
array[begin1] < array[begin2]
是什么意思?begin1和begin2又是什么意思?同一个数组的不同位存放两个数组的值?

希望尽量贴比较全面的代码。
2011-12-14 11:59
魏乾坤
Rank: 2
来 自:河南商丘
等 级:论坛游民
帖 子:6
专家分:20
注 册:2011-12-14
收藏
得分:0 
一个array数组中,begin1和begin2分别是两个子序列的起始索引。这部分代码是一次归并的代码,如果需要全部代码,晚上我会打出来.........
2011-12-14 12:34
快速回复:归并算法稳定性求解
数据加载中...
 
   



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

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