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; }
本文来自博客园,作者:Nikkie-02,转载请注明原文链接:https://www.cnblogs.com/Nikkie-02/p/16830159.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)