排序

快速排序(快排)

写题的时候用的不多基本都是直接sort ( ),面试可能要手撸快排,上模板

 void quick_sort(int q[], int l, int r)
{
if(l >= r) return;
int i = l - , j = r + , x = q[l];
while(i < j)
{
do i ++ ; while(q[i] < x);
do j -- ; while(q[j] > x);
if(i < j) swap(q[i],q[j]);
else break;
}
quick_sort(q, l, j), quick_sort(q, j + , r);
}

模板题

给定你一个长度为n的整数数列。

请你使用快速排序对这个数列按照从小到大进行排序。

并将排好序的数列按顺序输出。

输入格式

输入共两行,第一行包含整数 n。

第二行包含 n 个整数(所有整数均在1~109109范围内),表示整个数列。

输出格式

输出共一行,包含 n 个整数,表示排好序的数列。

数据范围

1≤n≤1000001≤n≤100000

输入样例:

    

输出样例:

    5
#include <iostream>
#include <cstdio> using namespace std;
void quick_sort(int p[], int l, int r);
const int mx = 1e5 + ;
int n, a[mx]; int main()
{
cin >> n;
for(int i = ; i < n; i ++)
scanf("%d",&a[i]); int l = , r = n - ;
quick_sort(a, l, r);
for(int i = ; i < n; i ++)
printf("%d ",a[i]);
return ;
} void quick_sort(int p[], int l, int r)
{
if(l >= r) return;
int i = l - , j = r + , x = p[l];
while(i < j)
{
do i ++; while(p[i] < x);
do j --; while(p[j] > x);
if(i < j) swap(p[i],p[j]);
else break;
}
quick_sort(p, l, j), quick_sort(p, j + , r);
}

最新文章

  1. &lt;a&gt;与文件下载-(下载一)
  2. js作用域
  3. REDHAT一总复习1 vim编辑器的使用 删除所有者列 删除指定行
  4. gulp-babel使用
  5. ubuntu下出现的问题-控制台更新源失败
  6. SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)之间区别
  7. [theWord] 一种英文字典的基类设计
  8. Linux input子系统学习总结(二)----Input事件驱动
  9. 利用getchar()消除多余字符数据(主要是“回车”)
  10. android recovery模式及ROM制作
  11. jQuery开发经验实例笔记
  12. Css攻克Selectors 一
  13. Appium Android Bootstrap源码分析之控件AndroidElement
  14. HDU5734 Acperience(数学推导)
  15. Python day 6(5) Python 函数式编程3
  16. iOS - MFi 认证
  17. PostCSS 基本用法
  18. Docker下安装Jenkins
  19. 爬虫——scrapy入门
  20. Monogdb 按2个字段值之间的比较

热门文章

  1. Python字符串(Python学习笔记02)
  2. NT9666X调试log
  3. Leetcode 68.文本左右对齐
  4. [luoguP3203][HNOI2010]BOUNCE 弹飞绵羊(LCT)
  5. jQuery下拉列表操作(转)
  6. 解决使用myeclipse电脑卡的问题
  7. C. Hexadecimal&#39;s Numbers
  8. Thread的方法join()使用
  9. 28、Java并发性和多线程-剖析同步器
  10. The 2014 ACM-ICPC Asia Mudanjiang Regional Contest(2014牡丹江区域赛)