快速排序-quickpow

Posted -citywall123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序-quickpow相关的知识,希望对你有一定的参考价值。

友链:https://blog.csdn.net/weixin_42060896/article/details/88168462?tdsourcetag=s_pcqq_aiomsg

技术图片

 

 

[l,r]区间不断逼近,直到区间长度为一是停止

void quicksort(int a[],int x,int y)
{
    int p=a[x];//p是[l,r]区间内中间大的数,x是p的下标
    int l=x,r=y;
    if(l>r)
        return;
    while(l<r)
    {
        while(l<r&&a[r]>=p)
            r--;
        while(l<r&&a[l]<=p)
            l++;
    //以上两个while循环执行完毕之后,得到的a[l]是大于p,a[r]是小于p,所以要交换才符合
        int temp;
        temp=a[l];
        a[l]=a[r];
        a[r]=temp;
    }
    //将区间[x,y]中间大的数p放到中间位置,并为下一次排序准备
    a[x]=a[l];
    a[l]=p;
    quicksort(a,x,l-1);
    quicksort(a,l+1,y);
    
}

 

以上是关于快速排序-quickpow的主要内容,如果未能解决你的问题,请参考以下文章

QuickPower快速幂

c_cpp QuickPow

快速排序-递归实现

c#代码片段快速构建代码

算法排序之堆排序

前端开发工具vscode如何快速生成代码片段