经典排序之插入排序

举报
chenyu 发表于 2021/07/27 02:01:16 2021/07/27
【摘要】 经典排序算法 – 插入排序Insertion sort   插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。  插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。    图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b...

经典排序算法 – 插入排序Insertion sort  

插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。 

  图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。

 

 

设数组为a[0…n-1]。

1.      初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1

2.      将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。

3.      i++并重复第二步直到i==n-1。排序完成。


代码:

 


  
  1. #include <iostream>
  2. using namespace std ;
  3. //C语言获取数组长度 注意宏定义不能换行
  4. #define getLength(array) sizeof(array)/sizeof(array[0])
  5. //C++获取数据长度
  6. template <class T>
  7. int getLen(T& array) {
  8. return sizeof(array)/sizeof(array[0]);
  9. }
  10. int* insertSort1

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/52704725

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。