| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2573 人关注过本帖
标题:直接插入排序方式
只看楼主 加入收藏
wfx753951
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2020-1-31
结帖率:0
收藏
 问题点数:0 回复次数:11 
直接插入排序方式
直接排序插入法为什么i=2的时候s[i]=12
输入数组为:25 12 36 45 2 9 39 22 98 37
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 插入 数组 输入 排序 
2020-01-31 17:11
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:566
专家分:3690
注 册:2019-7-29
收藏
得分:0 
论坛传统,发代码帖要发源代码,不要使用图片,次数多了,易被封号。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-01-31 18:17
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
因为你数据输入时是从编号为1的位置开始存入到数组的。

能编个毛线衣吗?
2020-01-31 22:07
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
//我照着算法导论给的伪代码敲了一遍,感觉和你的代码偏差很大,我也不知道我这个是不是插入排序法
图片附件: 游客没有浏览图片的权限,请 登录注册

#include<iostream>
using namespace std;
int main()
{   int a[10]= {};
    for(int i=0; i<10; ++i)
    {   cin>>a[i];
    }
    for(int j=2; j<10; ++j)
    {   
        for(int i=j-1; i>0&&a[i]>a[i+1]; --i)
        {   int tem=a[i+1];
            a[i+1]=a[i];
            a[i]=tem;  
         }
        
    }
    for(int i=0; i<10; ++i)
    {   cout<<a[i]<<endl;
    }
}

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-01-31 22:15
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
发现4楼代码和图片不一样 改改
#include<stdio.h>
#include<time.h>   //用到clock()函数
#include<iostream>
int main() {
    int begintime,endtime;
    begintime=clock();  //计时开始
   
int a[10]= {};
    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;
}

[此贴子已经被作者于2020-1-31 23:42编辑过]


把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-01-31 23:14
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
额。。发现5楼代码有错误,我还一时解决不了

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-01-31 23:46
wfx753951
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2020-1-31
收藏
得分:0 
回复 2楼 纯蓝之刃
谢谢,我是第一次在这个论坛发帖,以后会注意
2020-02-01 20:03
wfx753951
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2020-1-31
收藏
得分:0 
回复 4楼 叶纤
我是初学者,方法应该挺多的,主要是个中细节我不太明白
2020-02-01 20:05
wfx753951
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2020-1-31
收藏
得分:0 
回复 3楼 wmf2014
哇,谢谢你,一针见血
2020-02-01 20:07
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 6楼 叶纤
//我来帮你解决吧,代码红色的为修改部分
    int a[10] = { 25,12,36,45,2,9,39,22,98,37 };
    for (int j = 1; j < 10; ++j)
    {
        int tem = a[j]; int i = 0;
        for (i = j - 1; i >= 0 && a[i] > tem; --i)

能编个毛线衣吗?
2020-02-01 20:49
快速回复:直接插入排序方式
数据加载中...
 
   



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

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