排序直接插入排序及其源代码

插入排序  时间:2021-01-30  阅读:()

直接插入排序及其源代码

作法

直接插入排序(straight in sertio n sort) 的作法是

每次从无序表中取出第一个元素把它插入到有序表的合适位置使有序表仍然有序。

第一趟比较前两个数 然后把第二个数按大小插入到有序表中 第二趟把第三个数据与前两个数从后向前扫描把第三个数按大小插入到有序表中依次进行下去 进行了(n-1)趟扫描以后就完成了整个排序过程。

直接插入排序属于稳定的排序时间复杂性为 o(nA2)空间复杂度为 0(1)。

直接插入排序是由两层嵌套循环组成的。外层循环标识并决定待比较的数值。 内

层循环为待比较数值确定其最终位置。 直接插入排序是将待比较的数值与它的前一个数值进行比较所以外层循环是从第二个数值开始的。当前一数值比待比较数值大的情况下继续循环比较直到找到比待比较数值小的并将待比较数值置入其后一位置 结束该次循环。

值得注意的是我们必需用一个存储空间来保存当前待比较的数值 因为当一趟

比较完成时我们要将待比较数值置入比它小的数值的后一位 插入排序类似玩牌时整理手中纸牌的过程。插入排序的基本方法是每步将一个待排序的记录按其关键字的大小插到前面已经排序的序列中的适当位置直到全部记录插入完毕为止。

源代码

#in clude<iostream>using n amespace std;

#defi ne MAXSIZE 20typedef int keyType;typedef struct {keyType key; string otherinfo;

}RedType;typedef struct{

RedType r[MAXSIZE+1]; int len gth;

}S qList;int In sertSort(SqList&L)

{for(i nt i=2;i<=L.len gth;i++)

{if(L.r[i].key<L.r[i-1].ke y)

L.r[0]=L.r[i];

L.r[i]=L.r[i-1];for(int j=i-2;L.r[0].key<L.r[j].key;j--)

{

L.r[j+1]=L.r[j];

}

L.r[j+1]=L.r[0];

}

}return 1;

}int main()

{

SqList L;c o ut<<"插入排序 "<<endl;cout<<"请输入排序元素的个数";int num;cin>>num;

L.l engt h=num;c o ut<<"请输入各个元素 以空格隔开 "<<end l;for(int i=1;i<=L.length;i++)

{c in>>L.r[i].key;

}cout<<"您输入的元素为 ";fo r(i=1;i<=L.len gth;i++)c o ut<<L.r[i].ke y<<"";int test=InsertSort(L);if(tes t==1)

{c o ut<<end l;c o ut<<"插入排序的结果为 "<<end l;fo r(int j=1;j<=L.le ngth;j++)

{c o ut<<L.r[j].ke y<<"";

}

}els e

{cout<<"排序失败 ";

}return 0;

香港E3 16G 390元/ 香港E5*2 32G 600元/ 香港站群 4-8C 1200元/ 美国200G高防 900/ 日本100M 700元

3C云国内IDC/ISP资质齐全商家,与香港公司联合运营, 已超6年运营 。本次为大家带来的是双12特惠活动,香港美国日本韩国|高速精品|高防|站群|大带宽等产品齐全,欢迎咨询问价。3C云科技有限公司官方网站:http://www.3cccy.com/客服QQ:937695003网页客服:点击咨询客户QQ交流群:1042709810价目表总览升级内存 60元 8G内存升级硬盘 1T机械 90元 2...

RackNerd :美国大硬盘服务器促销/洛杉矶multacom数据中心/双路e5-2640v2/64G内存/256G SSD+160T SAS/$389/月

大硬盘服务器、存储服务器、Chia矿机。RackNerd,2019年末成立的商家,主要提供各类KVM VPS主机、独立服务器和站群服务器等。当前RackNerd正在促销旗下几款美国大硬盘服务器,位于洛杉矶multacom数据中心,亚洲优化线路,非常适合存储、数据备份等应用场景,双路e5-2640v2,64G内存,56G SSD系统盘,160T SAS数据盘,流量是每月200T,1Gbps带宽,配5...

UCloud年度大促活动可选香港云服务器低至年134元

由于行业需求和自媒体的倾向问题,对于我们个人站长建站的方向还是有一些需要改变的。传统的个人网站建站内容方向可能会因为自媒体的分流导致个人网站很多行业不再成为流量的主导。于是我们很多个人网站都在想办法进行重新更换行业,包括前几天也有和网友在考虑是不是换个其他行业做做。这不有重新注册域名重新更换。鉴于快速上手的考虑还是采用香港服务器,这不腾讯云和阿里云早已不是新账户,考虑到新注册UCLOUD账户还算比...

插入排序为你推荐
电视直播软件哪个好电视直播软件哪个好录音软件哪个好好用的录音软件! 急!!手机杀毒软件哪个好手机用什么杀毒软件好google广告申请Google广告用户申请有何绝招?电信dns服务器地址电信现在DNS服务器地址是多少360云盘企业版有什么网盘好用的?360云盘即将停止个人版转向企业版了,百度云限速太厉害不好用,微云感觉空间小了点360云安全中心可以连接到360云安全中心,但是无法上网杨小落的便宜奶爸求男主视角的专一文 文笔要过得去 不要玛丽苏 狗屁不通的小白文 最好是长一点的文章便宜好用的手机便宜又好的手机有哪些?便宜平板电脑便宜点的平板电脑
便宜虚拟主机 申请免费域名 本网站服务器在美国维护 站群服务器 googleapps ssh帐号 万网优惠券 国外免费空间 河南服务器 促正网秒杀 天互数据 135邮箱 网站卫士 cdn加速是什么 东莞服务器 多线空间 ca187 raid10 主机管理系统 云服务器比较 更多