zoukankan      html  css  js  c++  java
  • Algs4-2.3.9请说明Quick.sort()在处理只有两种、三种主键值时的行为

    2.3.9请说明Quick.sort()在处理只有两种主键值的数组时的行为,以及在处理只有三种主键值的数组时的行为。
    1)两种主键值时
    1.1)小元素作为分界元素,子数组剩余的元素两端也是小元素时,会进行一次交换,这是不必要的交换,这个在有重复值时也会出现这种不必要的交换。
    1.2)大元素作为分界元素,子数组剩余的元素两端也是大元素时,会进行一次交换,这是不必要的交换,这个在有重复值时也会出现这种不必要的交换。
    1.3)在有序的情况下,仍就会递归调用,使得对比次数增加,如果一开始先找到大值,然后从两端向中移动指针,当两指值指向的元素值不同时,小值放左边,大值放右边,对比次数就是线性。

    2)三种主键值时
    1.1)小元素作为分界元素,子数组剩余的元素两端也是小元素时,会进行一次不必要的交换。中元素、大元素交换到子数组右边时 中元素、大元素是无序排列。
    1.2)中元素作为分界元素,子数组剩余的元素两端也是中元素时,会进行一次不必要的交换。中元素、大元素交换到子数组右边时 中元素、大元素是无序排列。
    1.3)大元素作为分界元素,子数组剩说的元素两端也是大元素时,会进行一次不必要的交换。小元素、中心元交换到子数组左边时 小元素、中元素是无序排列。

  • 相关阅读:
    python 下载文件保存到本地
    python 模拟udp客户端发送报文
    Block的底层代码实现
    常见的崩溃问题和类型
    NSTimer打破循环引用的几种方式
    springcloud alibaba Nacos解决OpenFeign调用失败问题
    LRU算法
    常见算法题解
    PHP无文件木马
    c++各种类型的字节数
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9860199.html
Copyright © 2011-2022 走看看