数据结构实验之排序八:快速排序
数据结构实验之排序八:快速排序
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;
}
数据结构实验之排序八:快速排序相关推荐
- 6-1 数据结构实验之排序八:快速排序 (20 分)
题目描述: 本题要求实现一个快速排序函数. 给定 N ( N<= 100000 ) 个 int 范围内的整数,要求用快速排序对数据进行升序排列. 函数接口定义: void Quick_sort ...
- SDUT OJ 数据结构实验之排序一:一趟快排
数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...
- SDUT 3399 数据结构实验之排序二:交换排序
数据结构实验之排序二:交换排序 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 冒泡排序和快 ...
- SDUT 3400 数据结构实验之排序三:bucket sort
数据结构实验之排序三:bucket sort Time Limit: 150MS Memory Limit: 65536KB Submit Statistic Problem Description ...
- 数据结构实验之排序七:选课名单
数据结构实验之排序七:选课名单 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 随着学校规模 ...
- 数据结构实验之排序四:寻找大富翁__咳咳咳,还魂篇!!
数据结构实验之排序四:寻找大富翁 Time Limit: 200MS Memory Limit: 512KB Submit Statistic Problem Description 2015胡润 ...
- 数据结构实验之排序四:寻找大富翁 SDUT
数据结构实验之排序四:寻找大富翁 SDUT Time Limit: 200 ms Memory Limit: 512 KiB Submit Statistic Problem Description ...
- 数据结构实验之排序三:bucket sort SDUT
数据结构实验之排序三:bucket sort SDUT Time Limit: 250 ms Memory Limit: 65536 KiB Submit Statistic Problem Desc ...
- 数据结构实验四 排序算法的实现
广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼416) 2019年6月4日 学院 计算机科学与教育软件学院 年级.专业.班 姓名 学号 实验课程名称 数据结构实验 成绩 实验项 ...
最新文章
- linux和unix文件没有创建时间,Linux中没有文件创建时间的概念
- 运维大数据可视化分析平台来了,枯燥运维数据也可以生动起来
- srs10流程图_高效的SRS资源指示方法与流程
- 深入理解计算机系统 第十二章 并发编程
- LeetCode 1502. 判断能否形成等差数列
- Mybatis源码之插件模块分析
- iOS 14.5广告跟踪功能使广告商在安卓支出增长21%
- 计算机重启恢复到推荐分辨率,为什么重启之后电脑界面分辨率会变
- C++开发语言的特点及工作原理
- fontForge开源字体定制工具
- cad打印本计算机未配置,为什么CAD点打印的时候会警告无法使用此绘图仪配置?...
- ZZULIOJ1013
- 奇迹暖暖服务器不稳定,奇迹暖暖有几个服务器
- 为什么需要超出48K的音频采样率,以及PCM到DSD的演进
- Unity3d制作2D游戏飞翔的小鸟(FlappyBird)
- 中文知识图谱CN-DBpedia构建的关键技术
- [leetcode] 179 Largest Number
- 【python】腾讯云+python SDK免费发送短信
- 反序列化漏洞利用总结
- 孙溟㠭凿印《猛击一掌》