机房解疑 | 快速排序

Posted 机房日子编程

tags:

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

当当当~

又到了解疑的时候啦~

今天给小伙伴们讲一下

快速排序

机房解疑 | 快速排序
机房解疑 | 快速排序

首先我们来看一下题目

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

输入要求

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

输出要求

从小到大输出

输入样例

5

52 68 94 75 46

输出样例

46 52 68 75 94


机房解疑 | 快速排序

解题思路



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

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

核心思路:二分和递归

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


"

#include<bits/stdc++.h>

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]<mid) i++;

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

if(i<=j)

{

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

i++;

j--; 

if(l<j) qsort(l,j);

if(i<r) qsort(i,r);

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<<a[i]<<" "; 

"


  点击了解更多详情
  ▼








扫描下方二维码,咨询相关信息


微信二维码—刘老师

手机号:13817160526

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

❤️数据结构入门❤️(4 - 5)- 快速排序

深度解析(十六)快速排序

快速排序

基于快速排序方法改成求第k大的数

简单介绍一下快速排序的思想?

用C语言编程实现快速排序算法