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α。




  • 相关阅读:
    mysql之安装和配置(一)
    linux之cron定时任务介绍
    redis基础之开机自启动和监听(二)
    linux内网穿透自启动配置
    mysql 之修改初始密码
    Oracle-Linux安装配置python3.6环境
    redis基础之python连接redis(五)
    /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件的作用
    CentOS yum的详细使用方法
    9.2、面向对象:继承、多态
  • 原文地址:https://www.cnblogs.com/cyendra/p/3681626.html
Copyright © 2011-2022 走看看