c++实现快速排序随机化quickSortRandom及运行实例结果

快速排序请参考上一篇博文

为什么需要随机化?

我们在讨论快速排序平均性能时,前提假设是:输入数据的所有排练都是等概率的,但在实际工程中这种情况不总是成立的,所以引入随机化,随机选取一个元素作为主元,因为主元是随机选取的,我们期望在平均情况对输入数组的划分是比较均衡的

伪代码

c++实现快速排序随机化quickSortRandom及运行实例结果_第1张图片

c++实现快速排序随机化quickSortRandom及运行实例结果_第2张图片

c++实现快速排序随机化quickSortRandom及运行实例结果_第3张图片


c++代码

#include 

using namespace std;
//与快速排序一样
int partition(int array[],int p,int r)
{
    int x=array[r];
    int i=p-1;
    for(int j=p;j

运行结果

c++实现快速排序随机化quickSortRandom及运行实例结果_第4张图片


你可能感兴趣的:(算法导论)