把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

一些杂七杂八的东西。

一、关于排序

排序的稳定性和复杂度

      不稳定(有跨度的交换都会导致不稳定):

      选择排序(selection sort)— O(n2)

      快速排序(quicksort)— O(nlogn) 平均时间, O(n2) 最坏情况; 对于大的、乱序串列一般认为是最快的已知排序

      堆排序 (heapsort)— O(nlogn)

      希尔排序 (shell sort)— O(nlogn)

      基数排序(radix sort)— O(n·k); 需要 O(n) 额外存储空间 (K为特征个数)

 

      稳定(线性排序):

      插入排序(insertion sort)— O(n2)

      冒泡排序(bubble sort) — O(n2)

      归并排序 (merge sort)— O(n log n); 需要 O(n) 额外存储空间

      二叉树排序(Binary tree sort) — O(nlogn); 需要 O(n) 额外存储空间

      计数排序  (counting sort) — O(n+k); 需要 O(n+k) 额外存储空间,k为序列中Max-Min+1

      桶排序 (bucket sort)— O(n); 需要 O(k) 额外存储空间

 

 其他比较

  插入、冒泡排序的速度较慢,但参加排序的序列局部或整体有序时,这种排序能达到较快的速度。在这种情况下,快速排序反而慢了。

  当n较小时,对稳定性不作要求时宜用选择排序,对稳定性有要求时宜用插入或冒泡排序。

  若待排序的记录的关键字在一个明显有限范围内时,且空间允许是用桶排序。

  当n较大时,关键字元素比较随机,对稳定性没要求宜用快速排序。

  当n较大时,关键字元素可能出现本身是有序的,对稳定性有要求时,空间允许的情况下宜用归并排序。

  当n较大时,关键字元素可能出现本身是有序的,对稳定性没有要求时宜用堆排序。

  快排是目前基于比较的内部排序中被认为最好的方法,当待排序的关键字是随机分布时,快排所用的平均时间最短。

 

二、常见的递推关系

卡特兰数:凸n边形的三角形剖分问题,二叉树数目问题,出栈序列

第二类stirling数:放置小球,集合划分问题

集合取数问题

整数划分问题

 

 

三、排列组合

  • 插入法,捆绑法,剩余法,对等法,排异法(注意正难则反及逆向思维)

 

 

 

  • 圆周排列
  • 有重复元素的排列问题

 

 

  • 错排问题

 

 

四、二叉树的遍历问题

 

五、一些逻辑运算

 

posted @ 2018-10-10 19:07  AZe-qwq  阅读(151)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end