博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构(五)之直接插入排序
阅读量:4613 次
发布时间:2019-06-09

本文共 1073 字,大约阅读时间需要 3 分钟。

下面是我的小小代码:

1 /* 2 直接插入排序的基本思想:每次将一个待排序的记录按其关键字的大小插入到前面已排好序的文件中的适当位置, 3  4   直到全部记录插入完为止。 5  6   直白一点对于一个数组而言,将数组分为两部分前一部分是已有序的,后一部分是无序的,排序的过程中,只 7    8   需要每次从无序的部分中取第一个元素,把它插入到有序部分的适当位置,是有序部分不断地扩大,直到无序 9 10   部分为空,有序部分包含了所有数据。11 */12 13 #include 
14 15 void main(){16 int array[2000];17 int numberCount;18 int i;19 int j;20 int comperCount=0;//注意有可能一次都不用比较,所以记录比较次数的变量要赋值21 22 printf("请为数组输入对应的数据(整型数)并且当输入-9999时结束输入的动作!\n\n ");23 for(i=1;i<2000;i++){
//注意此处从1开始,0作为哨兵的位置24 scanf("%d",&array[i]);25 if(array[i]==-9999){
break;}26 }27 28 numberCount=i-1;29 printf("\n\n数组中有效的数据有:%d 个!",numberCount);30 31 //这段代码是直接插入排序的核心,分内外两层循环,外层循环控制待插入数据的比较次数,内层循环控制32 //为待插入的数据寻找合适的位置33 for(i=2;i<=numberCount;i++){
//注意此处从2开始,这是有直接插入排序的思想决定的34 if(array[i]
=1;i--){53 printf("%d ",array[i]);54 }55 56 printf("\n\n此数组经直接插入排序比较的次数为:%d 次!\n\n",comperCount);57 }

     代码中注释已比较清楚的指出了直接插入排序的基本思想和编写代码要注意的一些地方,如果下次在看时应该非常容易理解整段代码的!

转载于:https://www.cnblogs.com/godtrue/p/3304714.html

你可能感兴趣的文章
利用Redisson实现分布式锁及其底层原理解析
查看>>
达芬奇的十大经典名画解读
查看>>
case when then else end
查看>>
常用正则
查看>>
小程序丨嵌套循环
查看>>
基础 - arguments
查看>>
Linux的基本命令+深入一点的网址分享
查看>>
(C#) Encoding.
查看>>
BZOJ 2154: Crash的数字表格 [莫比乌斯反演]
查看>>
nrf51 SDK自带例程的解读
查看>>
SESSION技术
查看>>
数据结构(五)之直接插入排序
查看>>
SQL函数——LENGTH()和LENGTHB()
查看>>
vim - manual -个人笔记
查看>>
详解Javascript中prototype属性(推荐)
查看>>
angularjs实现首页轮播图
查看>>
Git 对象 和checkout 和stash的笔记
查看>>
团队项目总结2-服务器通信模型和顺序图
查看>>
hdu 1085 Holding Bin-Laden Captive!
查看>>
[周记]8.7~8.16
查看>>