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

快速排序模板

时间:2023-06-07 14:07:33浏览次数:29  
标签:right temp int quicksort 快排 排序 快速 模板 left


思路

快排基本思路应该就是二分+递归,从两侧同时(实则先从右往左)往中间找,同时和参变量对比,发现位置颠倒后交换位置,然后通过二分将其一块一块的分割开,直到分割到一个元素位置,即完成了快排。

代码

#include<bits/stdc++.h>

using namespace std;

int a[101],n;

void quicksort(int left,int right)
{
	int i,j,t,temp;//temp存基准数 
	if(left>right)	return;
	
	temp=a[left];
	i=left;
	j=right;
	while(i!=j)
	{
		while(a[j]>=temp && i<j)	j--;
		while(a[i]<=temp && i<j)	i++;
		
		if(i<j)
		{
			t=a[i];
			a[i]=a[j];
			a[j]=t;
		}
	}
	
	a[left]=a[i];
	a[i]=temp;
	
	quicksort(left, i-1);
	quicksort(i+1,right);
	return;
}

int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	quicksort(1,n);
	
	for(int i=1;i<=n;i++)
	{
		cout<<a[i]<<" ";
	}
	
	return 0;
}

总结

快排应该是最常用的模板了,时间复杂度也比较理想


标签:right,temp,int,quicksort,快排,排序,快速,模板,left
From: https://blog.51cto.com/u_15567308/6431251

相关文章

  • Luogu P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并
    [Vani有约会]雨天的尾巴/【模板】线段树合并题目背景深绘里一直很讨厌雨天。灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切。虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连根拔起,以及田地里的粮食被弄得一片狼藉。无奈......
  • AI人工智能领域精美绘图模板分享
    1人工智能的发展历程如今人工智能的应用渗透了我们生活的方方面面,我们都知道人工智能的前景十分光明,在未来对于推进人类发展进程也是非常重要的,但其实人工智能的发展道路是极其曲折的,下面就将人工智能的发展历程分为如下六个阶段:起步发展期反思发展期应用发展期低迷发展期......
  • 直播美颜技术:视频美颜sdk的快速集成与开发实践
    视频美颜sdk则是直播美颜技术的重要组成部分,它可以帮助开发者快速集成美颜功能,实现直播美颜。目前已经被广大平台、主播、平台用户所应用,在近几年甚至成了一个极其热门的讨论话题,毕竟它与人们的日常拍摄生活息息相关。一、视频美颜sdk的快速集成在集成视频美颜sdk之前,开发者需要先......
  • RTL8380MI/RTL8382MI工业级管理型交换机系统软件操作指南六:RSTP/快速生成树协议
    对RSTP/快速生成树协议进行详细的描述,主要包括以下内容:STP概述、RSTP介绍、全局配置、端口配置、RSTP信息、端口信息.1.1STP概述STP(SpanningTreeProtocol)是生成树协议的英文缩写。STP协议中定义了根桥(RootBridge)、根端口(RootPort)、指定端口(DesignatedPort)、路径开销(PathCos......
  • 一文理清排序算法中的直接插入、快排和希尔排序的区别
    前言在上一篇文章中,给大家介绍了冒泡排序和选择排序,这两种算法都是排序算法。实际上排序算法还有插入、希尔、快速排序等,接下来我们就来学习一下这几种排序算法。全文大约【5400】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图视频,让你更好地理......
  • 摆动排序
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){ floatarr[20],h; inti,t=0; charc; printf("pleaseputnumbers:\n"); for(i=0;i<10;i++) { scanf("%f%c",&arr[i],&c); if(c=='......
  • 用户模板和用户场景
    (1)名字:小明(2)年龄:20(3)收入:0(4)代表的用户在市场上的比例和重要性:当代大学生(5)使用这个软件的典型场景:外出运动(6)使用本软件/服务的环境:网络覆盖范围内(7)知识层次和能力:熟练使用手机(8)用户的动机、目的和困难:记录行踪、记录运动轨迹1.背景:(1)典型用户:小明(2)用户的需求/迫切需要解决的......
  • 帮助中心的设计指南:帮助用户快速解决常见问题!
    帮助中心对于用户而言,就是使用手册,一套系统实用的帮助中心可以节约大量的沟通成本,帮助用户快速上手使用该产品。 帮助中心应用方向当下产品帮助中心的应用方向,可以分为两类:一类是给企业内部使用的,一类是给企业外部使用的。但无论是对内还是对外,产品帮助中心的设计都是从产品的基本......
  • 算法 in Golang:Quicksort(快速排序)
    算法inGolang:Quicksort(快速排序)Quicksort(快速排序)快速排序O(nlog2^n),比选择排序要快O(n²)在日常生活中经常使用使用了D&C策略(分而治之)使用Quicksort排序数组不需要排序的数组(也就是BaseCase基线条件):[],空数组[s],单元素数组很容易排序的数组:[a,b],两......
  • 数据结构与算法分析(Java语言描述)(13)—— 原地堆排序
    packagecom.algorithm.sort;publicclassHeapSortInPlace{privateHeapSortInPlace(){}publicstaticvoidsort(Integer[]arr){intn=arr.length;//注意:我们堆的索引是从0开始的//从(最后一个元素的索引-1)/2开始......