AcWing算法基础1.1
2024-09-02 18:08:48
排序
快速排序(快排)
写题的时候用的不多基本都是直接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);
}
最新文章
- <;a>;与文件下载-(下载一)
- js作用域
- REDHAT一总复习1 vim编辑器的使用 删除所有者列 删除指定行
- gulp-babel使用
- ubuntu下出现的问题-控制台更新源失败
- SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)之间区别
- [theWord] 一种英文字典的基类设计
- Linux input子系统学习总结(二)----Input事件驱动
- 利用getchar()消除多余字符数据(主要是“回车”)
- android recovery模式及ROM制作
- jQuery开发经验实例笔记
- Css攻克Selectors 一
- Appium Android Bootstrap源码分析之控件AndroidElement
- HDU5734 Acperience(数学推导)
- Python day 6(5) Python 函数式编程3
- iOS - MFi 认证
- PostCSS 基本用法
- Docker下安装Jenkins
- 爬虫——scrapy入门
- Monogdb 按2个字段值之间的比较
热门文章
- Python字符串(Python学习笔记02)
- NT9666X调试log
- Leetcode 68.文本左右对齐
- [luoguP3203][HNOI2010]BOUNCE 弹飞绵羊(LCT)
- jQuery下拉列表操作(转)
- 解决使用myeclipse电脑卡的问题
- C. Hexadecimal&#39;s Numbers
- Thread的方法join()使用
- 28、Java并发性和多线程-剖析同步器
- The 2014 ACM-ICPC Asia Mudanjiang Regional Contest(2014牡丹江区域赛)