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

快速排序quicksort

时间:2024-07-20 09:58:12浏览次数:12  
标签:int quicksort pos high while low 排序 快速

#include<iostream>
using namespace std;
int partition(int a[], int low, int high)
{
	int pivot = a[low];
	while (low < high)
	{
		while (low < high && a[high] >= pivot)//先从high开始
			high--;
		a[low] = a[high];
		while (low < high && a[low] <= pivot)
			low++;
		a[high] = a[low];
	}
	a[low]=pivot;
	return low;

}
void quicksort(int a[], int low, int high)
{
	if (low < high)
	{
		int pos=partition(a, low, high);
		quicksort(a, low, pos - 1);
		quicksort(a, pos + 1, high);
	}
}
int main()
{
	int arr[5] = { 10,0,1,8,45 };
	quicksort(arr, 0, 4);
	cout << "排序之后:" << endl;
	for (int i = 0; i < 5; i++)
	{
		cout << arr[i] << " ";
	}
	return 0;
}

标签:int,quicksort,pos,high,while,low,排序,快速
From: https://blog.csdn.net/weixin_73598089/article/details/140457893

相关文章

  • 二路归并排序
    #include<iostream>usingnamespacestd;voidmerge(inta[],intlow,intmid,inthigh){ intn1=mid-low+1; intn2=high-mid; int*L=(int*)malloc(sizeof(int)*n1); int*R=(int*)malloc(sizeof(int)*n2); inti,j,k; for(i=0,k=low......
  • 插入排序 insertsort
    #include<iostream>usingnamespacestd;voidinsertsort(inta[],intn){ inti,j,key; for(i=1;i<n;i++) { if(a[i]<a[i-1]) { key=a[i]; for(j=i-1;j>=0&&a[j]>key;j--) a[j+1]=a[j]; a[j......
  • 数据结构_排序
    目录一、排序二、插入排序2.1直接插入排序2.2希尔排序三、选择排序3.1直接选择排序3.2堆排序四、交换排序4.1冒泡排序4.2快速排序五、归并排序六、排序算法分析总结一、排序排序:就是使一串记录序列,按照其中某个或某些关键字的大小,进行递增或递减的排列......
  • python实现快速幂
    若需要计算a^b,如果使用循环来计算显然效率是很低的以下有三种方法实现快速幂方法一,python自带函数pow(a,b,mod),其中a为底数,b为指数,mod是对该数取模,mod参数有时候可以不传a=pow(5,9)方法二,利用递归实现快速幂,该方法需要注意分类讨论,考虑到指数为0,指数为1以及指数是奇数的情......
  • 堆排序的实现
    首先需要知道的是,如果想要对一个数组排升序,要建大堆,排降序,要建小堆。具体过程:(以排降序为例)1)建小堆;2)交换堆顶(第一个)和堆尾(最后一个)的数据;3)交换完后,最后一个数据不动,剩下的数据对堆顶元素进行向下调整;4)循环2)3)步骤。下面用图来展示一下过程:1)假设对数组arr[10]={3,1......
  • 合并排序数组
    合并排序数组(蓝桥杯题库)题目描述给定排序数组A和B,实现一个算法将B按排序顺序合并到A中。介绍如下:数组A和B的均为排序数组,数字按从小到大排列。数组A的的长度为 ......
  • PHP 快速入门:构建动态网站的基础
    引言PHP,全称HypertextPreprocessor,是一种广泛用于创建动态网站的服务器端脚本语言。它易于学习,功能强大,能够与多种数据库系统(如MySQL)集成,是Web开发者的常用工具之一。本文将带你快速了解PHP的基本概念和用法。基础语法输出PHP中没有专门的输入语句,但可以通过多种......
  • docker-compose教程(安装,使用, 快速入门)
    docker-compose教程(安装,使用,快速入门)一、docker-compose介绍DockerCompose是一个用来定义和运行多个复杂应用的Docker编排工具。例如,一个使用Docker容器的微服务项目,通常由多个容器应用组成。那么部署时如何快速启动各个微服务呢,一个个手动启动?假如有上百个微服务呢,显然不现......
  • dockerfile来快速部署一个jsp服务
    1.创建一个jsp服务需要的dockfilevimjsp_dockerfile#UsetheofficialUbuntu 20.04 baseimageFROMubuntu:20.04 #SetenvironmentvariablesENVDEBIAN_FRONTEND=noninteractive #InstallnecessarypackagesRUNapt-getupdate&&\    apt-getinsta......
  • 梅特勒快速水分仪维修卤素水分测定仪HR83-P
    METTLERTOLEDO梅特勒水分测定仪维修系列包括:HX/HS/HR快速水分测定仪系列,以及HB/MJ快速水分测定仪系列。METTLERTOLEDO梅特勒水分测定仪维修,卤素水分测定仪,适用于实验室和生产现场。采用二代卤素灯,提供温度控制,可快速、均匀的加热样品采用MonoBloc单模块传感器,具有良好的......