2.3.11假如在遇到和切分元素重复的元素时我们继续扫描数组而不是停下来,证明使用这种方法的快速排序在处理只有若干种元素值的数组时的运行时间是平方级别的。
答:在有重复元素的情况下,一轮比较与交换后,与切分元素同值的元素仍就保持在原有位置,切分元素移动到分界位置,得到的排序结果为左子数组<=切分元素<=右子数组元素,这种情况下切分元素的同值元素在左右子数组中都会出现,那么排序一定大于lgN轮;当元素值的种类较少并且遇到和切分元素重复时,出现左子数组为空或右子数组为空的概率高,那么排序需要的比较次数接近于快速排序最多的情况(N+1)N/2,所以运行时间是O(N^2)。
转载于:https://www.cnblogs.com/longjin2018/p/9860215.html