| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1512 人关注过本帖
标题:拆入排序法为啥第一个总是不换位置
取消只看楼主 加入收藏
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
拆入排序法为啥第一个总是不换位置
输入56,4 ,6 ,34 ,6 ,8 ,5 ,67 ,5 ,4
结果数组的第一位总是不变,为啥吗
56
4
4
5
5
6
6
8
34
67


Running Time:166ms

#include<stdio.h>
#include<time.h>   //用到clock()函数
#include<iostream>
int main() {
    int begintime,endtime;
    begintime=clock();  //计时开始
   
int a[10]= {56,4 ,6 ,34 ,6 ,8 ,5 ,67 ,5 ,4};
   // for(int i=0; i<10; ++i)
    //{   std::cin>>a[i];
   // }
    for(int j=2; j<10; ++j)
    {    int tem=a[j];int i=0;
        for(i=j-1; i>0&&a[i]>tem; --i)
        {   //int tem=a[i+1];
            a[i+1]=a[i];
            //a[i]=tem;  
         }
         a[i+1]=tem;
        
    }
    for(int i=0; i<10; ++i)
    { std::cout<<a[i]<<std::endl;
    }

    endtime = clock();  //计时结束
    printf("\n\nRunning Time:%dms\n", endtime-begintime);
    return 0;
}
搜索更多相关主题的帖子: for 排序 time std int 
2020-01-31 23:51
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
感谢大佬们,理解了,j可以等于0、1,但一定不要等于大于等于2的,如果等于2则第0位永远排序不到

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-01 12:14
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
回复 6楼 雪影辰风
感谢

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-01 13:32
快速回复:拆入排序法为啥第一个总是不换位置
数据加载中...
 
   



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

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