美文网首页算法互联网科技程序员
Cousera 公开课Princeton Algorithms

Cousera 公开课Princeton Algorithms

作者: MrPickles | 来源:发表于2017-11-01 20:38 被阅读22次

    Mergesort

    merge sort里的基本思路就是递归的将要排序的数组划分成两个部分,然后将这两个子数组排序后在做归并,这样就得到一个排序后的数组。

    一个简单的例子

    mergesort uses at most NlogN compares and 6NlogN array accesses

    分治算法

    在对原始的mergesort改进上,提出了bottom-up mergesort 。就是前面的代码里,我们实现merge sort用的是top down的方式。也就是说我们首先递归的划分了各个段,再针对每个段来归并。实际上,我们也可以倒过来,从下到上,也就是一种bottom up的方式。

    排序算法可以看成是一个决策树模型

    排序的稳定性:在排序前后  具有相等值的项的先后顺序不会改变 就是稳定排序

    2.Quicksort

    排序流程

    优点:节省space

    缺点:重复值多时,效率不高且不稳定

    快速选择(quick-select):就是从给定的一个集合S={a1,a2,...an}中选出第K个大小的数,或者给出其所在的下标之类的。

    当碰到很多duplicate value 时,可以采用3-way-partitioning

    排序算法小结

    相关文章

      网友评论

        本文标题:Cousera 公开课Princeton Algorithms

        本文链接:https://www.haomeiwen.com/subject/nyjipxtx.html