当前位置:   article > 正文

数据结构-第九章 内部排序-知识点总结1_数据结构内排序知识点总结

数据结构内排序知识点总结

第九章 内部排序 

排序:重点在于对于记录的关键字进行排序,得到按关键字有序记录序列
分为:
    A.内部排序: 排序过程在内存中进行 
    B.外部排序: 待排序记录数据量过大,需要借助外部存储设备
排序的稳定性:排序后有相同关键字的记录顺序不变就是稳定的排序


插入类排序:
1.直接插入排序:将新加入的记录的关键字与之前的记录关键字从后往前比较,
               若较小,则向前比较,同时进行比较的记录后移一个位置,直到找到小于等于的关键字,插入在其后. 

实例代码如下: 

  1. void InsSort(int r[], int length){//r可以设置为结构数组,这里认为是数组
  2. int i,j;
  3. for(i = 2; i < length; i++){ // i=2开始,i=1为第一个元素,认为是子表,i=0设置为监视哨
  4. r[0] = r[i];//将待插入记录存到监视哨中,临时保存
  5. j = i - 1; //i为初始待插入记录位置,i-1为需要比较的记录位置
  6. while(r[0] < r[j]){
  7. r[j+1] = r[j];
  8. j--;
  9. }
  10. r[j+1] = r[0];
  11. }
  12. }

优点:算法简单,适用于记录数目较少且基本有序
时间复杂度:O(n^2).

2.折半插入排序:类似于快排

示例代码如下:

  1. void BinSort(int r[], int length){
  2. int i, x, j;
  3. int low, high, mid;
  4. for(i = 2;i <= length; i++){
  5. x = r[i];
  6. low = 1;
  7. high = i - 1;
  8. while(low < high){//Attention!不取等,
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/784696
推荐阅读
相关标签
  

闽ICP备14008679号