首页 > 其他分享 >快速排序

快速排序

时间:2023-09-06 10:44:54浏览次数:38  
标签:ix const int 快排 1e6 排序 快速

快排模板

#include<iostream>

using namespace std;

const int N = 1e6+10;
int q[N];

void quick_sort(int q[],int l,int r){
	if(l>=r) return;
	int x = q[(l+r)/2],i=l-1,j=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;
	scanf("%d",&n);
	
	for(int i=0;i<n;++i){
		scanf("%d",&q[i]);
	}
	
	quick_sort(q,0,n-1);
	
	for(int i=0;i<n;++i){
		printf("%d ",q[i]);
	}
	
	return 0;
}

注意事项:

定义x=q[(l+r+1)/2]时会MLE

标签:ix,const,int,快排,1e6,排序,快速
From: https://www.cnblogs.com/whynot-ne/p/17681658.html

相关文章

  • 快速幂
    intqpow(inta,intn){intans=1;while(n){if(n&1)//如果n的当前末位为1ans*=a;//ans乘上当前的aa*=a;//a自乘n>>=1;//n往右移一位}returnans;}......
  • 快速构建商业模式,企业在云服务器选购上有什么需要注意的?
    云服务器是一种基于云计算技术的虚拟化服务,它可以为用户提供灵活、可扩展、高效的计算资源。云服务器的优势在于可以根据业务需求随时调整配置,节省成本,提高效率。但是,云服务器的选择不仅仅要考虑价格和性能,还要考虑服务质量,因为这关系到用户的业务稳定性和安全性。服务质量是指云服......
  • Java实现常见排序算法
    Java实现常见排序算法排序也称排序算法(SortAlgorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。常见的排序算法分......
  • MySQL数据高阶处理技巧:掌握先排序后分组的智慧
    在MySQL数据库的数据探索旅程中,排序和分组是不可或缺的工具。然而,当你面对大量数据、重复值等情况时,常规的处理方法可能显得不够灵活。本文将为你揭示一个精妙的技巧:如何在MySQL中先排序,后分组,从而获取每个类型的最新数据,助你轻松驾驭复杂的数据处理任务。问题背景:先排序,后分组拥有......
  • python 对象数组,根据指定字段条件过滤数据,并排序升序
    在Python中,你可以使用`filter()`函数和`sorted()`函数来根据指定字段的条件过滤并排序对象数组。以下是示例代码,演示如何根据指定字段条件过滤并按升序排序对象数组:```pythonobj_arr=[{'id':1,'name':'John'},{'id':2,'name':'Jane'},{'id':......
  • python 数字数组升序排序
    在Python中,你可以使用内置的`sorted()`函数对数字数组进行升序排序。以下是示例代码,演示如何对数字数组进行升序排序:```pythonnums=[5,3,8,2,1,9,4]sorted_nums=sorted(nums)print(sorted_nums)#输出:[1,2,3,4,5,8,9]```在这个示例中,我们使用`sorted()......
  • 使用工作流快速开发平台,做好企业数据资源管理!
    面对越来越繁忙的业务,很多客户朋友不知道用什么样的平台才能快速处理好企业内部数据,做出更有利于企业发展的经营决策。其实,低代码技术平台、工作流快速开发平台是可以让企业减少重复工作,提高工作效率,实现流程化办公管理的重要工具。流辰信息将坚持最初的研发梦想,提高自主研发能力,......
  • 【Leetcode刷题记录】各种排序算法
    前言:这篇文章总结一下学习的几种排序算法,假设要对一个vector<int>数组进行降序排序,数组中一共有n个数。1、冒泡排序思想:冒泡排序的思想就是一共进行n-1次循环,每次循环把范围内最小的数冒到最后面。因此用内为双循环,外循环为冒泡的次数,内循环为每次冒泡的范围,通过比较和......
  • CentOS Linux release 7.6.1810 Zabbix 4.2 快速入门与实践:构建强大的企业级资源监控
    目录:0x00Zabbix介绍0x01Zabbix安装0x02Zabbix配置0x03Zabbix-Web配置与使用0x04Zabbix实战配置0x0nZabbix入坑配置0x00Zabbix介绍描述:zabbix是一个开源的企业级性能监控解决方案,可以实时监控服务器/网络设备等硬件资源与其相关的各项指标是否是正常的,而且能够更加方便......
  • 使用parted快速对新硬盘/磁盘进行分区
    1.前言由于MBR分区表只能识别2TB的硬盘(原因可以看MBR分区表为什么最大只能识别2TB硬盘容量),因此随着现在的硬盘空间越来越大,需要使用其他的分区表,如GPT。2.使用parted进行磁盘分区首先安装好磁盘之后,需要使用fdisk命令识别你的磁盘信息(普通用户使用sudo提权,下面同理):fdisk-l......