首页 > 其他分享 >Acwing 快速排序

Acwing 快速排序

时间:2022-10-26 21:46:44浏览次数:79  
标签:ix const int 基准 排序 快速 Acwing

基于分治的思想,每次划分后,保证基准(x)前的数都比基准小,其后的树都比基准大即可。

#include<iostream>

using namespace std;

const int N=100010;

int q[N];

void quick_sort(int q[],int l,int r){
    if(l>=r)    return;
    int i=l-1,j=r+1,x=q[l+r>>1];
    while(i<j){
        do i++;while(q[i]<x);    /*保证基准(x)前的数都比基准小*/
        do j--;while(q[j]>x);
        if(i<j) swap(q[i],q[j]);    /*不符合条件,则交换*/
    }
    quick_sort(q,l,j);
    quick_sort(q,j+1,r);
}

int main(){
    int n;
    scanf("%d",&n);
    
    for(int i=0;i<n;i++)
        scanf("%d",&q[i]);
    quick_sort(q,0,n-1);
    for(int i=0;i<n;i++)
        printf("%d ",q[i]);
    return 0;
}

标签:ix,const,int,基准,排序,快速,Acwing
From: https://www.cnblogs.com/Nikkie-02/p/16830159.html

相关文章

  • 田忌赛马(带索引的数组排序)
    870. AdvantageShuffleMedium27821FavoriteShareGiventwoarrays ​​A​​​ and ​​B​​ ofequalsize,the advantageof ​​A​​ withrespectto ​​......
  • 从排序阵列中删除重复 II
    题目来源​​RemoveDuplicatesfromSortedArrayII​​问题描述“删除重复项目”的进阶:如果重复最多被允许两次,又该怎么办呢?例如:给定排序数列nums=[1,1,1,2,2,3]......
  • 从排序数组中删除重复项
    题目来源​​RemoveDuplicatesfromSortedArray​​题目描述给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。不要另外定义一个数......
  • 从小到大排序
    题目描述六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i](即w[j]>=h[i]),他才会上去表演节目。老师的......
  • 倒序排序求次数平方和最大值
    题目描述有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值例如:字符串"abacaba",里面包括4个'a',2个'b',1个......
  • 用函数模板实现对n个数进行由小到大排序
    #include<iostream>usingnamespacestd;//用模板实现两个数值交换template<classT>voidtswap(T*x,T*y){inttemp=*x;*x=*y;*y=temp;}//排序模板......
  • 大数据基础之java常用API二(数组元素排序,冒泡排序、Arrays类,包装类,Date类)
    (大数据基础之常用API二)1.数组元素排序1.1冒泡排序图解代码演示publicstaticvoidmain(String[]args){int[]arr={25,69,80,57,13};//遍......
  • 多次排序减去摸一个值,求平方和最小值
    题目描述有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值例如:字符串"abacaba",里面包括4个'a',2个'b',1个......
  • SpringCloud学习笔记(六)——Sleuth快速追踪
    一、链路追踪及其由来链路追踪就是:追踪微服务的调用路径。在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每......
  • python3 使用位图排序
    代码frombitmapimportBitMapa=[1,5,3,4,7,8,15,6,9]print(a)bm=BitMap(max(a))#print(dir(bm))print(bm.tostring())foriina:bm.set(i)print(bm......