博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构概览之第八章排序
阅读量:5970 次
发布时间:2019-06-19

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

前言:数据结构概览之第八章排序整理

  插入排序

思想:

从待排关键字序列中的第二个关键字开始一直到最后的一个关键字结束,不论待排序的关键字是否有序,都要执行 len -1 次排序;

把当前的关键字currentElem用哨兵记录;

比较哨兵和currentElem之前的关键字的大小,并且适当的进行后移的操作;

到最后找到哨兵的位置,进行插入。

代码如下:

1 /** 2  插入排序 3  4  @param R 数组 5  @param len 数组中元素个数 6  */ 7 void insertSort(int R[],int len); 8  9 void insertSort(int R[],int len){10     int i,j;11     int temp;12     for(i = 1;i < len;i ++){13         j = i - 1;14         temp = R[i];15         while (j >= 0 && temp < R[j]) {16             R[j+1] = R[j];17             --j;18         }19         R[j+1] = temp;20     }21 }
View Code

测试函数以及输出:

1 int R[] = {
1,2,-2,3,4,-3,0};2 insertSort(R, sizeof(R)/sizeof(int));3 for (int i = 0; i < 7; i ++) {4 printf("%d\t",R[i]);5 }6 // -3 -2 0 1 2 3 4 Program ended with exit code: 0
View Code

和课本不同之处:记得之前的课本上是用的一个"哨兵"来记录这个当前待排序的关键字,这里用temp的话原理是一样的;

 

参考资料:

数据结构高分笔记

数据结构严蔚敏版配套PPT

 

OS交流群欢迎你的加入!

群二维码:

先写到这么多

如有问题,敬请指正;

如需转载,请注明出处,谢谢!

转载于:https://www.cnblogs.com/ITCoderW/p/8006302.html

你可能感兴趣的文章
Oracle——条件控制语句
查看>>
[Linux][Redis][05]Benchmark
查看>>
第一次作业-准备篇
查看>>
HDU1848 Fibonacci again and again
查看>>
HTML思维导图
查看>>
git改密码出现授权问题
查看>>
ORA-02266: 表中的唯一/主键被启用的外键引用
查看>>
Django的POST请求时因为开启防止csrf,报403错误,及四种解决方法
查看>>
day-6 and day-7:面向对象
查看>>
CSU Double Shortest Paths 湖南省第十届省赛
查看>>
webgl像机世界
查看>>
php正则怎么使用(最全最细致)
查看>>
javascript数学运算符
查看>>
LC.155. Min Stack(非优化,两个stack 同步 + -)
查看>>
交互设计[3]--点石成金
查看>>
SCCM TP4部署Office2013
查看>>
Android创建启动画面
查看>>
Linux中date命令的各种实用方法--转载
查看>>
mysqld -install命令时出现install/remove of the service denied错误的原因和解决办法
查看>>
苹果企业版帐号申请记录
查看>>