| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 363 人关注过本帖
标题:插入排序问题
只看楼主 加入收藏
aiyifan
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2015-2-24
结帖率:100%
收藏
 问题点数:0 回复次数:3 
插入排序问题
//插入排序
void InsertSort(int data[],int size){
    for(int i=1;i<size;i++){//取数循环
        int temp = data[i];
        int j;
        for(j=i;j>0&&data[j-1]>temp;j--)//比数循环
            data[j-1] = data[j];
        if(j!=i)
            data[j] = temp;//插入数据
    }
}

比数循环时我如下写是错误的呢:
        for(j=i;j>0;j--)
               if(data[j-1]>temp)
                    data[j-1]=data[j];
请问错在哪里。
2015-02-26 10:39
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
虽然对c不熟,但也看的出7788。我觉得你应该是不理解插入排序,该方法是将当前数放到左边正确位置后交换数据位置,你的循环会把当前数放到正确位置后继续倒循环与第一个位置的数交换,所以错了。
收到的鲜花
  • aiyifan2015-02-26 13:10 送鲜花  3朵   附言:我很赞同
2015-02-26 11:03
aiyifan
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2015-2-24
收藏
得分:0 
回复 2楼 xzlxzlxzl
谢谢,明白了。
2015-02-26 13:11
swchvs
Rank: 2
等 级:论坛游民
威 望:2
帖 子:53
专家分:81
注 册:2015-2-21
收藏
得分:0 
2015-02-26 13:30
快速回复:插入排序问题
数据加载中...
 
   



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

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