当前位置:   article > 正文

数据结构之直接插入排序图文详解及代码(C++实现)_直接插入排序代码数据结构

直接插入排序代码数据结构

问题:

对待排序的数组r[1..n]中的元素进行直接插入排序,得到一个有序的(从小到大)的数组r[1..n]。

算法思想:

1、设待排序的记录存放在数组r[1..n]中,r[1]是一个有序序列。

2、循环n-1次,每次使用顺序查找法,查找r[i](i=2,..,n)在已排好的序列r[1..i-1]中的插入位置,然后将r[i]插入表长为i-1的序列r[1..i-1],直到将r[n]插入表长为n-1的有序序列r[1..n-1],最后得到一个表长为n的有序序列。

图解:

代码:

  1. #include<iostream>
  2. using namespace std;
  3. #define MAXSIZE 20//顺序表的最大长度
  4. typedef int KeyType;//定义关键字类型为整型
  5. typedef int InfoType;
  6. typedef struct
  7. {
  8. KeyType key;//关键字项
  9. InfoType otherinfo;//其他数据项
  10. }RedType;
  11. typedef struct
  12. {
  13. RedType r[MAXSIZE+1];//r[0]闲置或做哨兵单元
  14. int length;//顺序表的长度
  15. }SqList;//顺序表类型
  16. void InsertSort(SqList &L)//对顺序表L做直接插
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/736887
推荐阅读
相关标签
  

闽ICP备14008679号