数据结构实验之排序八:快速排序

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

给定N(N≤10^5)个整数,要求用快速排序对数据进行升序排列,注意不得使用STL。

Input

连续输入多组数据,每组输入数据第一行给出正整数N(≤10^5),随后给出N个整数,数字间以空格分隔。

Output

输出排序后的结果,数字间以一个空格间隔,行末不得有多余空格。

Sample Input

8
49 38 65 97 76 13 27 49

Sample Output

13 27 38 49 49 65 76 97

Hint

Source

快速排序运用的主要思想其实就是二分法,将一大组数据从中间分成两部分,如果按升序排列的话,就将小于中间数据的数放在左边,大于中间数据的数放在右边,然后不断重复不断递归,从而完成数据的快速排列。快排是一种很重要的排列手段,相比较而言,快排比冒泡和选择排序更加具有速度上的优势,可以很快的排列出大量的数据,在许多学校的ACM比赛中为了不TLE,往往遇到排序就采取快排这种方法。但缺点就是快排的代码组成相对较麻烦,如果不清楚快排的实现过程就很容易忘记快排的函数构成从而与AC失之交臂。快排的思想建议好好参照代码来研究一下,当然如果学了C++的STL库的童鞋对此根本不屑。STL库中有更加简便的快排。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int a[110000];
int  qsort(int l,int r)//快排函数
{if(l>=r) return 0;int i,j,mid;i=l;j=r;mid=a[i];while(i<j){while(i<j&&a[j]>=mid){j--;}a[i]=a[j];while(i<j&&a[i]<=mid){i++;}a[j]=a[i];}a[i]=mid;qsort(l,i-1);qsort(i+1,r);
}
int main()
{int n;while(~scanf("%d",&n)){for(int i=0;i<n;i++){scanf("%d",&a[i]);}qsort(0,n-1);for(int i=0;i<n;i++){if(i==n-1){printf("%d\n",a[i]);}else{printf("%d ",a[i]);}}}return 0;
}

数据结构实验之排序八:快速排序相关推荐

  1. 6-1 数据结构实验之排序八:快速排序 (20 分)

    题目描述: 本题要求实现一个快速排序函数. 给定 N ( N<= 100000 ) 个 int 范围内的整数,要求用快速排序对数据进行升序排列. 函数接口定义: void Quick_sort ...

  2. SDUT OJ 数据结构实验之排序一:一趟快排

    数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...

  3. SDUT 3399 数据结构实验之排序二:交换排序

    数据结构实验之排序二:交换排序 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 冒泡排序和快 ...

  4. SDUT 3400 数据结构实验之排序三:bucket sort

    数据结构实验之排序三:bucket sort Time Limit: 150MS Memory Limit: 65536KB Submit Statistic Problem Description ...

  5. 数据结构实验之排序七:选课名单

    数据结构实验之排序七:选课名单 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 随着学校规模 ...

  6. 数据结构实验之排序四:寻找大富翁__咳咳咳,还魂篇!!

    数据结构实验之排序四:寻找大富翁 Time Limit: 200MS  Memory Limit: 512KB Submit  Statistic Problem Description 2015胡润 ...

  7. 数据结构实验之排序四:寻找大富翁 SDUT

    数据结构实验之排序四:寻找大富翁 SDUT Time Limit: 200 ms Memory Limit: 512 KiB Submit Statistic Problem Description ...

  8. 数据结构实验之排序三:bucket sort SDUT

    数据结构实验之排序三:bucket sort SDUT Time Limit: 250 ms Memory Limit: 65536 KiB Submit Statistic Problem Desc ...

  9. 数据结构实验四 排序算法的实现

    广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼416)     2019年6月4日 学院 计算机科学与教育软件学院 年级.专业.班 姓名 学号 实验课程名称 数据结构实验 成绩 实验项 ...

最新文章

  1. linux和unix文件没有创建时间,Linux中没有文件创建时间的概念
  2. 运维大数据可视化分析平台来了,枯燥运维数据也可以生动起来
  3. srs10流程图_高效的SRS资源指示方法与流程
  4. 深入理解计算机系统 第十二章 并发编程
  5. LeetCode 1502. 判断能否形成等差数列
  6. Mybatis源码之插件模块分析
  7. iOS 14.5广告跟踪功能使广告商在安卓支出增长21%
  8. 计算机重启恢复到推荐分辨率,为什么重启之后电脑界面分辨率会变
  9. C++开发语言的特点及工作原理
  10. fontForge开源字体定制工具
  11. cad打印本计算机未配置,为什么CAD点打印的时候会警告无法使用此绘图仪配置?...
  12. ZZULIOJ1013
  13. 奇迹暖暖服务器不稳定,奇迹暖暖有几个服务器
  14. 为什么需要超出48K的音频采样率,以及PCM到DSD的演进
  15. Unity3d制作2D游戏飞翔的小鸟(FlappyBird)
  16. 中文知识图谱CN-DBpedia构建的关键技术
  17. [leetcode] 179 Largest Number
  18. 【python】腾讯云+python SDK免费发送短信
  19. 反序列化漏洞利用总结
  20. 孙溟㠭凿印《猛击一掌》

热门文章

  1. 下载xshell xftp
  2. 建立个人网站的基本步骤
  3. C语言--逗号运算符及逗号表达式
  4. AutoJs学习-读取手机短信
  5. ViewPager及ViewPager
  6. 《wish官方运营手册》读书笔记
  7. 【分治】大整数乘法(C++)
  8. 分享一个普通程序员的“沪漂”六年的历程以及感想
  9. ffmpeg开源工具的使用_使用开源工具玩龙与地下城
  10. mysql 聚簇索引 和聚簇索引 (二级索引)的 那些事