数据结构排序算法总结

来源:互联网 发布:英国议会 知乎 编辑:程序博客网 时间:2024/05/16 18:43

20101002

 

http://www.shilin-blog.com/73.html

一、插入排序      1)直接插入排序      2)折半插入排序      3)希尔排序

二、交换排序      1)冒泡排序            2)快速排序     

三、选择排序      1)简单选择排序      2)堆排序    

四、归并排序     

五、基数排序    

 

一、插入排序

1)直接插入排序

 

时间复杂度:平均情况—O(n2)     最坏情况—O(n2)     辅助空间:O(1)      稳定性:稳定

void InsertSort(SqList &L) {
  // 对顺序表L作直接插入排序。
  int i,j;
  for (i=2; i<=L.length; ++i)
    if (LT(L.r[i].key, L.r[i-1].key)) {
      // "<"时,需将L.r[i]插入有序子表
      L.r[0] = L.r[i];                 // 复制为哨兵
      for (j=i-1;  LT(L.r[0].key, L.r[j].key);  --j)
        L.r[j+1] = L.r[j];             // 记录后移
      L.r[j+1] = L.r[0];               // 插入到正确位置
    }
} // InsertSort 

 

 

原创粉丝点击