zoukankan      html  css  js  c++  java
  • 《算法导论》笔记 第7章 7.2快速排序的性能

    【笔记】

    最佳情况划分:两个子问题的大小都不大于n/2。

    平衡的划分:每当按照常数比例进行划分时,总的时间都是O(nlogn)


    【练习】

    7.2-1 利用代换法证明:递归式T(n)=T(n-1)+⊙(n)的解为T(n)=⊙(n^2)。

    假设


    可以选择合适的常数C_1 C_2。得出T(n) = ⊙(n^2)。


    7.2-2 当数组A的所有元素都具有相同值时,QUICKSORT 的运行时间是什么?

    O(n^2)


    7.2-3 证明:当数组 A 包含不同的元素、且按降序排序时,QUICKSORT 的运行时间是⊙(n^2)。

    当元素按降序排列时,每次都是最大不对称划分,因此运行时间是⊙(n^2)。


    7.2-4 对几乎已拍好序的输入进行排序,INSERTION-SORT优于QUICKSORT。

    对于一个排好序的数组,QUICKSORT的运行时间是⊙(n^2)。插入排序在有序的情况下只需比较n-1次。


    7.2-5 假设快速排序的每一层,所做的划分比例都是1-α:α,其中 0<α<1/2 是个常数。

    证明:在对应的递归树中,叶子结点的最小深度大约是-lgn/lgα,最大深度大约是-lgn/lg(1-α)。

    最小深度:设最大深度为m,每次向α分割方向下降,m次分割后仅剩1个元素 n*α^m = 1, α^m = 1/n ,两边取对数 mlgα = lg1-lgn ,m = -lgn/lgα

    最大深度:同理 n*((1-α)^m) = 1, (1-α)^m = 1/n ,取对数 mlg(1-α) = -lgn 即 m = -lgn/lg(1-α)


    *7.2-6 证明:对于任何常数 0<α<=1/2,在一个随机输入数组上,过程PARTITION产生比1-α:α更对称的划分的概率约为1-2α。




  • 相关阅读:
    又到一年高考时
    嵌套母版页中的控件访问
    用临时表改善嵌套SQL语句的执行速度
    利用图片进行定位
    CSS样式嵌套
    触摸MVP
    抱SQL SERVER大腿之从巨大表中提炼非重复数据
    用参数来控制用户控件的缓存
    Understand static/global data completely in C++
    VS资源(基础)
  • 原文地址:https://www.cnblogs.com/cyendra/p/3681626.html
Copyright © 2011-2022 走看看