洛谷P1177 【模板】排序(快速排序)

快速排序算法【C语言】&洛谷P1177 【模板】快速排序 快速排序算法作为最基础的算法之一,同时也是我们最常用的算法,c++也自带了sort之一快速排序的算法来方便我们的使用,今天我们就一起来学习一下简单快排的原理。 洛谷的P1271就是这样的一个题目。事实就是,在昨晚之前,我从来没有去了解过快速排序的原理,在昨晚遇到这个题目,我查了一点资料,大概了解了一下快速排序的原理,它其实是对冒泡排序的一种优化,先从需要排序的数列中取定一个特殊值,将其余的数与其比较,小的放在一边,大的放在一边,这样我们就把需要排序的数组从一变成了二,再对这两个数组进行同样的操作,递归下去 阅读详情

原题链接

这题用冒泡排序和sort都会超时,这里用快速排序模板

模板如下

const int maxn = 1e5 + 10;
int q[maxn];
void quick_sort(int q[],int l,int r)
{
	if (l >= r)  return;    //递归边界
	int i = l - 1, j = r + 1, x = q[l + r >> 1];     //这里的初值分别设为l-1,r+1是因为
	//while中是do,while结构。先使i+1,j-1指向数组第一个和最后一个位置,再开始判断。
	while (i < j)
	{
		do i++; while (q[i] < x);
		do j--; while (q[j] > x);
		if (i < j) swap(q[i], q[j]); //交换
	}
	quick_sort(q, l, j), quick_sort(q, j + 1, r);  //递归左右子序列
}

AC代码如下

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 1e5 + 10;
int q[maxn];
void quick_sort(int q[], int l, int r)
{
	if (l >= r)  return;
	int i = l - 1, j = r + 1, x = q[l + r >> 1];
	while (i < j)
	{
		do i++; while (q[i] < x);
		do j--; while (q[j] > x);
		if (i < j) swap(q[i], q[j]);
	}
	quick_sort(q, l, j), quick_sort(q, j + 1, r);
}
int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> q[i];
	}
	quick_sort(q, 1, n);
	for (int i = 1; i <= n; i++)
	{
		cout << q[i] << " ";
	}
	cout << endl;
	return 0;
}

洛谷P1177 【模板】快速排序 (归并排序) 题目描述 利用快速排序算法将读入的N个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。) 输入输出格式 输入格式: 第11行为一个正整数N,第2行包含N个空格隔开的正整数a i ,为你需要进行排序的数,数据保证了... 阅读详情

相关推荐

从ATE到ATPG:基于Scan Chain的芯片制造缺陷定位实战解析

本文深入解析了从ATE到ATPG的芯片制造缺陷定位实战技术,重点介绍了Scan Chain的工作原理、异步复位触发器处理技巧以及Design Compiler中的DFT实现方法。通过实际案例展示了如何利用ATE测试数据和ATPG工具进行精确的缺陷定位,并分享了提升测试覆盖率和优化测试成本的专业技巧,为芯片测试工程师提供了宝贵的实战经验。

weixin_42527160的博客 380

P1177 【模板】排序(Sort排序)

将读入的N个数从小到大排序后输出。

jungleirim的博客 685

M2DGR数据集在一些SLAM框架上的配置与运行:ORB-SLAM系列、VINS-Mono、LOAM系列、FAST-LIO系列、hdl_graph_slam

为了说明以上这些SLAM框架的测试与数据集适配,以M2DGR数据集为例进行各自的配置与运行,方便我以后适配自己的数据集,运行的SLAM框架包括:ORB-SLAM2、ORB-SLAM3、VINS-Mono、A-LOAM、LeGO-LOAM、LIO-SAM、LVI-SAM、FAST-LIO2、FAST-LIVO、Faster-LIO、hdl_graph_slam。实验基于Ubuntu20.04,其中ORB、VINS-Mono、和LOAM系列的安装参考我以前的博客,有详细的安装方法,其他的框架在后面会简单介绍一下

zardforever123的博客 1万+

快速排序介绍和【题解】【洛谷P1177】——【模板】排序(附C++代码实现)

冒泡排序虽然好,可是太浪费时间了,计数排序虽快,但是太浪费空间了。那有没有两者兼得的方法呢?当然有,那就是快速排序。快速排序是基于分治的一种排序算法。其核心就是找基准数(参照数)。将小于基准数的数放到基准数左边,大于基准数的数放到基准数右边,再递归分别处理左右两个区间。按照上面的方式,让我们来排序数组吧。为了方便,我们就将第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的放在6的左边,类似下面这种排列3 1 2 5 469 7 10 8。

Pantheraonca的博客 1422

集成电路设计笔记(七)UVLO设计

1. 什么是UVLO 欠压锁定(Undervoltage-Lockout)简称UVLO,是电子设备中在电源电压低于正常工程准位时,切断电源的电路。在嵌入式系统中常会用UVLO监控电池电压,若电压低于一定值,会直接切断电源,保护嵌入式系统的电路。 许多电子设备中都有UVLO的功能,例如在镇流器中就有UVLO电路,若电压过低时直接切断电源。 UVLO就是低电压锁定; 低压关断. 欠压关断模式是当供电电压低于IC的开启门限电压时的一种保护模式。欠压关断模式可保证IC在供电电压不足时不致于被损坏。一个低电压锁定(

ccbirds 2万+

wsl --install 不执行,显示帮助信息

在安装使用wsl的时候碰到了wsl --install 不执行,而显示帮助信息,提供了解决方案。

水滴爬呀爬 2775

洛谷 P1177 【模板】排序 (Merge Sort排序)

归并排序(Merge sort)是建立在归并操作上的一种有效、稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

hua3473489608的博客 1059

arcgis密度分析

密度分析 密度分析是指根据输入的要素数据集计算整个区域的数据集状况,从而产生一个连续的密度表面。通过计算密度,将每个采样点的值散布到整个研究区域,并获得输出栅格中每个像元的密度值。在 ArcGIS 中,分布密度的计算方法有点密度分析、线密度分析和核密度分析三种。 1.点密度分析 导入实验数据居民点图层和道路图层 在自定义里勾选空间分析模块Spatial Analyst 点击空间分析工具中密度分析内的点密度分析, 参数设置如下,其中输出像元大小表示输出栅格数据集的像元大小。值越小.

Jasenjane的博客 2万+

P1177 【模板】排序

对于 100%100% 的数据,有 1≤�≤1051≤N≤105,1≤��≤1091≤ai​≤109。第二行包含 �N 个空格隔开的正整数 ��ai​,为你需要进行排序的数。将给定的 �N 个数从小到大输出,数之间空格隔开,行末换行且无空格。对于 20%20% 的数据,有 1≤�≤1031≤N≤103;将读入的 �N 个数从小到大排序后输出。第一行为一个正整数 �N。

weixin_74197037的博客 434

RTKLIB中RTK定位原理(一)

1 模型 1.1 非差观测值 非差观测值与RTKLIB中PPP定位原理——观测模型部分中一致。 1.2 单间单差观测值 若两个接收机距离较近,经过站间单差,电离层对流层延迟可消除,卫星s的钟差以及初始相位被消除,中依然包含接收机初始相位。 1.3 站间星间双差观测值 经过站间星间双差,接收机钟差及初始相位被消除。 2 EKF参数估计 2.1 EKF法则 EKF法则与RTKLIB中PPP定位原理——观测模型部分中一致。 2.2 状态变量与时间更新 (1)状态变量 在RTK...

papunzal的博客 3817

以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

网络设备中肯定离开不MAC和PHY,本篇文章将详细介绍下以太网中一些常见术语与接口。 MAC和PHY结构 从硬件角度来看以太网是由CPU,MAC,PHY三部分组成的,如下图示意: 上图中DMA集成在CPU,CPU,MAC,PHY并不是集成在同一个芯片内,由于PHY包含大量模拟器件,而MAC是典型的数字电路,考虑到芯片面积及模拟/数字混合架构的原因,**将MAC集成进CPU而将PHY留在片外,这种...

sternlycore的博客 13万+

【题解】洛谷P1177[模板]快速排序

题目链接 复习一波模板 #include&amp;lt;cstdio&amp;gt; #include&amp;lt;algorithm&amp;gt; using namespace std; #define _rep(i,a,b) for(int i=(a);i&amp;lt;=(b);i++) const int N=1e5+10; int a[N]; void qsort(int l,int r) { int m...

翻过这座山,他们就会听到你的故事 367

从 SOAUTH2 到系统用户,SAP AS ABAP 里配置 OAuth 2.0 Client 的完整落地思路

SAP OAuth 2.0客户端配置的核心在于建立系统级信任关系。在AS ABAP中,每个OAuth 2.0客户端必须关联一个System类型的用户账号(通过SU01创建),并建议采用业务语义明确的命名规范(如ZBTP_PO_APPROVAL_APP)。关键配置包括:客户端认证方式(推荐SSL证书而非共享密钥)、Token生命周期(默认3600秒)、Scope访问范围,以及根据应用场景选择Authorization Code或SAML 2.0 Bearer等授权模式。项目实践中应避免混合配置不同授权类型,而

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 988

【洛谷】P1177 【模板】快速排序 题解

题目描述 利用快速排序算法将读入的NN个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。) 输入格式 第11行为一个正整数NN,第22行包含NN个空格隔开的正整数a_ia**i,为你需要进行排序的数,数据保证了A...

Samven_7的博客 4025

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【洛谷】P1177 【模板】快速排序

题目地址: https://www.luogu.com.cn/problem/P1177 快速排序模板题,所以直接抄模板了。。。 #include <iostream> using namespace std; const int N = 1e6+10; int n; int q[N]; void quick_sort(int q[], int l, int r) { ...

数学、算法爱好者的博客 312

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

洛谷—题解 P1177 【模板】快速排序

原题链接P1177 【模板】快速排序 题目描述 利用快速排序算法将读入的N个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。) 输入输出格式 输入格式: 第1行为一个正整数N,第2行包含N个空格隔开的正整数ai,为你需...

qq_41616301的博客 825

洛谷P1177【【模板】快速排序】

【模板】快速排序 题目 利用快速排序算法将读入的 NN 个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++C++ 选手请不要试图使用 STL,虽然你可以使用 sort 一遍过,但是你并没有掌握快速排序算法的精髓。) 输入格式 第1行为一个正整数N,第2行包含N个空格隔开的正整数ai,为你需要进行排序的数,数据保证了Ai不超过10^9。 输出格式 将给定的N个数从小到大输出,数之间空格隔开,行末换行且无空格。 Sampl

zhanglili1597895的博客 3212

洛谷——P1177 【模板】快速排序

题目描述 利用快速排序算法将读入的NN个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。) 输入输出格式 输入格式: 第11行为一个正整数NN,第22行包含NN个空格隔开的正整数a_iai​,为你...

猪の成长日记 284

洛谷 P1177 【模板】快速排序

这道题用传统快排(如下所示)的结果就是最后三个点TLE: void swap(int &a, int &b) { int tmp = a; a = b; b = tmp; } void quickSort(int a[], int left, int right) { if (left >= right) return; ...

TimDyh的博客 287

[洛谷 P1177] 【模板】快速排序

题目描述 利用快速排序算法将读入的NN个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。) 输入格式 第11行为一个正整数NN,第22行包含NN个空格隔开的正整数a_iai​,为你需要进行排序的数,数据保证了A_iAi​不超过10^9109。 输出格式 将给定的NN个数从小...

... 699

P1177 【模板】快速排序(洛谷)

原题传送门 思路:快排模板题 代码参考 在这里插入代码片

Bertil的博客 473

【快速排序】【模板】洛谷P1177

输入 5 4 2 4 5 1 输出 1 2 4 4 5 找一个点temp,每次都把小于它的放它左边,大于它的放它右边 时间复杂度最大N2,最小NlogN #include<iostream> #include<math.h> #include<algorithm> #include<string.h> using namespace std; int...

寻找秀儿的博客 308

洛谷P1177 【模板】快速排序

洛谷P1177 【模板】快速排序 这道题考察的是快速排序,但是要注意初始元素的选择,一开始我使用左边界的元素作为起始元素,运行的结果是三个TLE,因为如果一开始数组就是有序的,如果再使用传统快排(每次划分都得到最坏的结果),造成时间复杂度过大,所以,可以选取中间值作为枢轴元素。 #include<iostream> using namespace std; const int N = 1e5+10; int n; int q[N]; void quick_sort(int q[],in

qq_44653420的博客 788
上一篇: 洛谷P1271选举学生会
下一篇: Hbuilder能打开开发者工具但打不开项目的原因
蘸醋
博客等级 码龄5年 44粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值