返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c/c++基础简单易懂的快速排序算法
  • 599
分享到

c/c++基础简单易懂的快速排序算法

2024-04-02 19:04:59 599人浏览 独家记忆
摘要

快速排序就是找一个基准,然后其左边要比他小,右边要比他大 int partition(int* a, int left, int right) { int pivot = le

快速排序就是找一个基准,然后其左边要比他小,右边要比他大


int partition(int* a, int left, int right)
{
	int pivot = left;//找最开始位置为基准
	int index = left + 1;
	for (int i = index; i <= right; i++)
	{
		if (a[i] < a[pivot])
		{
			swap(a, i, index);
			index++;
		}
	}
	swap(a, pivot, index - 1);//index-1表示找到比a[pivot]要小的个数
	return index - 1;
}

然后通过递归的方法对基准左右两边都进行这样的排序 知道一个元素为止


void quick_sort(int* a, int left, int right)
{
	if (left < right)
	{
		int pivot = partition(a, left, right);
		quick_sort(a, left, pivot);//调用这个递归函数是将左边全部排好序
		quick_sort(a, pivot+1, right);//将右边排好
	}
}

以上就是C/C++基础简单易懂的快速排序算法的详细内容,更多关于c/c++快速排序的资料请关注编程网其它相关文章!

--结束END--

本文标题: c/c++基础简单易懂的快速排序算法

本文链接: https://lsjlt.com/news/157699.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • c/c++基础简单易懂的快速排序算法
    快速排序就是找一个基准,然后其左边要比他小,右边要比他大 int partition(int* a, int left, int right) { int pivot = le...
    99+
    2024-04-02
  • C++快速排序算法简明理解
    目录一、问题描述二、想法三、算法实现总结一、问题描述 [问题] 应用快速排序方法对一个记录序列进行升序排列。快速排序(quick sort)的分治策略如下。 (1)划分:选定一个记录...
    99+
    2024-04-02
  • C#实现快速排序算法
    快速排序是应用最广泛的排序算法,流行的原因是它实现简单,适用于各种不同情况的输入数据且在一般情况下比其他排序都快得多。 快速排序是原地排序(只需要一个很小的辅助栈),将长度为 N 的...
    99+
    2024-04-02
  • C语言实现单链表的快速排序算法
    目录背景设计思路算法主要步骤快速排序算法实现整个程序源代码测试案例总结背景 传统QuickSort算法最大不足之处在于,由于其基于可索引存储结构设计(一般为数组或索引表),因而无法用...
    99+
    2024-04-02
  • Python实现快速排序算法及去重的快速排序的简单示例
    快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用。 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它...
    99+
    2022-06-04
    快速 示例 算法
  • 通俗易懂的C语言快速排序和归并排序的时间复杂度分析
    目录快速排序和归并排序的时间复杂度分析——通俗易懂归并排序的时间复杂度分析快速排序的时间复杂度快速排序的最坏情况O(n^2)总结快速排序和归并排序的时间复杂度...
    99+
    2023-01-28
    C语言排序时间复杂度 C语言快速排序归并排序
  • C/C++实现快速排序算法的两种方式实例
    目录介绍流程如下实现方式一方式二总结介绍 快速排序是对冒泡排序算法的一种改进,快速排序算法通过多次比较和交换来实现排序。 流程如下 (图片来自百度) 实现 以下有两种实现方式,说是...
    99+
    2024-04-02
  • C语言实现快速排序算法实例
    首先我们要对一组数据进行排序: 在数组中选一个基准数(通常为数组第一个,黄圈圈标记了); 将数组中小于基准数的数据移到基准数左边,大于基准数的移到右边,怎么移动,后面说; 对于基准数...
    99+
    2024-04-02
  • C语言如何实现快速排序算法
    这篇文章将为大家详细讲解有关C语言如何实现快速排序算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码#define  _CRT_SECURE_NO_WARNINGS 1/...
    99+
    2023-06-22
  • c语言快速排序算法怎么使用
    使用快速排序算法,需要先定义一个快速排序函数,然后在主函数中调用该函数。下面是一个示例的C语言快速排序算法的实现:```c#incl...
    99+
    2023-09-21
    c语言
  • C语言常见排序算法之交换排序(冒泡排序,快速排序)
    目录前言1.交换排序——冒泡排序1.1 算法思想1.2 动图演示1.3 冒泡最好的情况 2. 交换排序——快速排序...
    99+
    2024-04-02
  • C语言中有哪些简单的排序算法
    这篇文章主要介绍“C语言中有哪些简单的排序算法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言中有哪些简单的排序算法”文章能帮助大家解决问题。1.冒泡排序(Bubble Sort)基本思想:冒泡...
    99+
    2023-07-05
  • 简单的排序算法
    现在的IT行业并不像以前那么好混了,从业人员过多,导致初级程序员过剩,这也间接导致了公司的招聘门槛越来越高,要求程序员掌握的知识也越来越多。算法也是一个争论了很久的话题,程序员到底该不该掌握算法?不同的人有不同的答案,而事实上,很多公司都对...
    99+
    2021-12-20
    java教程 java
  • 超详细解析C++实现快速排序算法的方法
    目录一、前言1.分治算法2.分治算法解题方法二、快速排序1.问题分析2.算法设计3.算法分析三、AC代码一、前言 1.分治算法 快速排序,其实是一种分治算法,那么在了解快速排序之前,...
    99+
    2024-04-02
  • C语言简明讲解快速排序的应用
    目录快速排序1.1快速排序引入1.2快速排序的基本思想1.3快速排序的排序流程1.4实例说明1.5代码实现1.6性能分析快速排序 快速排序,说白了就是给基准数据找其正确索引位置的过程...
    99+
    2024-04-02
  • C++归并法+快速排序实现链表排序的方法
    本文主要介绍了C++归并法+快速排序实现链表排序的方法,分享给大家,具体如下: 我们可以试用归并排序解决: 对链表归并排序的过程如下。 找到链表的中点,以中点为分界,将链表拆分成...
    99+
    2024-04-02
  • 数据排序问题轻松应对:简单易懂的pandas排序指南
    简单易懂的pandas排序教程:让你轻松应对数据排序问题,需要具体代码示例 在数据分析和处理中,常常需要对数据进行排序,以便更好地理解数据的特征和规律。在Python中,pandas库是进行数据分析和处理的重要工具之一。本教程将...
    99+
    2024-01-24
    教程 Pandas 排序
  • C语言之快速排序算法(递归Hoare版)介绍
    废话不多说,先看代码 #define _CRT_SECURE_NO_WARNINGS 1 //快速排序算法,递归求解 #include <stdio.h> void ...
    99+
    2024-04-02
  • C语言实现交换排序算法(冒泡,快速排序)的示例代码
    目录前言一、冒泡排序1.基本思想2.优化3.扩展二、快速排序1.基本思想2.优化3.代码前言 查找和排序是数据结构与算法中不可或缺的一环,是前辈们在算法道路上留下的重要且方便的一些技...
    99+
    2024-04-02
  • 详解C语言快速排序三种方法的单趟实现
    目录交换排序的思想冒泡排序的思想快速排序的整体框架快速排序单趟实现逻辑1. hoare版本单趟实现(左右指针法)2.挖坑法单趟排序实现3.前后指针法交换排序的思想 基本思想:所谓交换...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作