raptor输入n个数据排序_机房解疑 | 快速排序

当当当~

又到了解疑的时候啦~

今天给小伙伴们讲一下

快速排序

d16bb0d72cbebcc18cbfd06aa6475b52.gif 18bc9456a0efe7a50ec783e74f567f5b.png bf733676cfc54b0c7fa8623359e7113d.png

首先我们来看一下题目

有 n 组数据,输入这些数据,然后将他们从小到大排列并输出

输入要求

第一行输入一个正整数 n(3<=n<=10000),第二行输入 n 个数

输出要求

从小到大输出

输入样例

5

52 68 94 75 46

输出样例

46 52 68 75 94

9ec49b3ddbbfc7c29afc85f07e139e9d.png

解题思路

排序的方法有很多,有冒泡排序,插入排序,选择排序,桶排序,快速排序,桶排序,归并排序等,每一种排序都有每一种排序的特点。

随时数据量的增加,很多排序都会出现超时的现象(时间复杂度),那快速排序正如他的名称一样,运算是比较快的。在处理大量数据时,快速排序的程序运算时间比较少,但是在极端数据的情况下,比如原始数据是从大到小的,那快速排序也会处理相对比较久一些,所以快速排序的稳定性不是很好。

核心思路:二分和递归

下面是快速排序参考代码~

1f7a486b9515d48c63b7968ee13dc484.gif "

#include

using namespace std;

int a[10005];

void qsort(int l,int r){

int i,j,mid;

i=l;j=r;

mid=a[(l+r)/2];

while(i<=j)

{

while(a[i]

while(a[j]>mid) j--;

if(i<=j)

{

swap(a[i],a[j]);

i++;

j--; 

if(l

if(i

int main(){

int n,i;

cin>>n;

for(i=1;i<=n;i++)

cin>>a[i];

qsort(1,n);

for(i=1;i<=n;i++)

cout<

" ▼   点击了解更多详情   ▼喜报 | CCF CSP-J/S 2019第二轮认证评级,机房日子编程再创佳绩 !机房解疑 | 搜索 - 全排列机房解疑 | 高精度运算,不简单的A+B机房解疑 | 递归 - 汉诺塔问题机房解疑 | 约瑟夫问题 - 猴子选大王寒假招生 | 搜索基础课程与动态规划基础课程新一期的C++编程基础课程开始招生了!更多优惠等你来领取! 扫描下方二维码,咨询相关信息

f6a2a15d1258780d6525a567c68e31f7.png

微信二维码—刘老师

手机号:13817160526

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值