首页 > 编程语言 >c++十大排序——快速排序

c++十大排序——快速排序

时间:2024-03-24 21:12:04浏览次数:31  
标签:arr right end 十大 int c++ 排序 left

1

#include<iostream>
 
using namespace std;
 
void quickSort(int arr[], int begin, int end) {
	if (begin >= end) return;
	int left = begin;
	int right = end;
	int temp = arr[left];
 
	while (left < right) {
		//从后往前找比他小的放前面,从前往后找比它大的放后面
		//以第一个数为基准,必须先从后往前走,再从前往后走
		while (left < right && arr[right] >= temp) {
			right--;
		}  //跳出此循环,代表right找到了比temp小的数字,所以此时arr[left]=arr[right]
		if (left < right) {
			arr[left] = arr[right];
		}
		while (left < right && arr[left] <= temp) {
			left++;
		}//同理
		if (left < right) {
			arr[right] = arr[left];
		}
		if (left == right) {
			arr[left] = temp;
		}
	}
	quickSort(arr, begin, left - 1);
	quickSort(arr, left + 1, end);
}
int main() {
 
	int arr[11] = { 5,6,3,2,7,8,9,1,4,0,0 };
	quickSort(arr, 0, 10);
	for (auto x : arr) {
		cout << x << " ";
	}
	return 0;
}

  

 

标签:arr,right,end,十大,int,c++,排序,left
From: https://www.cnblogs.com/xiaochouk/p/18093063

相关文章

  • 【C++】每日一题 452 用最少数量的箭引爆气球
    有一些球形气球贴在一堵用XY平面表示的墙面上。墙面上的气球记录在整数数组points,其中points[i]=[xstart,xend]表示水平直径在xstart和xend之间的气球。你不知道气球的确切y坐标。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有......
  • 【数据结构】快速排序(用递归)
    大家好,我是苏貝,本篇博客带大家了解快速排序,如果你觉得我写的还不错的话,可以给我一个赞......
  • 【数据结构】希尔排序
    大家好,我是苏貝,本篇博客带大家了解希尔排序,如果你觉得我写的还不错的话,可以给我一个赞......
  • 【数据结构】归并排序(用递归)
    大家好,我是苏貝,本篇博客带大家了解归并排序,如果你觉得我写的还不错的话,可以给我一个赞......
  • day9 嵌套排序,利用嵌套循环所写的简单时钟
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>//利用嵌套循环编写一个时间的函数#include<Windows.h>//利用windows的函数来定义时刻。intmain(){   for(inti=0;i<24;i++)//嵌套的本质是外层执行一次内层执行一周,内层如果再嵌套则此时的内层表示的是......
  • 初识C++(二)引用,内联函数,auto
    目录1.引用的概念与用法:1.1引用特性:1.2使用场景    1.2.1做参数1.3传值、传引用效率比较1.4引用做返回值1.5引用和指针的对比2.内联函数3.auto关键字4.基于范围的for循环(C++11)5.指针空值nullptr(C++11)1.引用的概念与用法:    引用是一个重要的......
  • 代码解析 C++ 的语法难点
    C++是一种强大的编程语言,它提供了丰富的语法特性,但也带来了相应的语法难点。本文将深入解析C++中一些常见的语法难点,并提供清晰的解释和示例,帮助读者深入理解C++的语法。1.指针和引用指针和引用都是C++中处理内存地址的强大工具,但它们也容易混淆。指针指向内存地......
  • 第十二届蓝桥杯省赛C&C++ 研究生组
    十二届省赛题第十二届蓝桥杯省赛C&C++研究生组-卡片第十二届蓝桥杯省赛C&C++研究生组-直线第十二届蓝桥杯省赛C&C++研究生组-货物摆放第十二届蓝桥杯省赛C&C++研究生组-路径第十二届蓝桥杯省赛C&C++研究生组-时间显示第十二届蓝桥杯省赛C&C++研究生组-砝码称重......
  • C# Dictionary(字典)的键、值排序
    Dictionary<string,string>dic1=newDictionary<string,string>();dic1.Add("ddd","123");dic1.Add("aaa","123");dic1.Add("ccc","123");dic1.Add("fff",&q......
  • C++ 的标准模板库(STL)常用容器介绍
    C++的标准模板库(STL)提供了丰富的容器类来帮助开发者管理和存储数据。下面我将介绍C++中常用的STL容器,并且为每个容器提供一个简单的示例来说明其基本用法。1.vector(向量)#include<iostream>#include<vector>intmain(){std::vector<int>vec;//添加元......