首页 > 编程语言 >快速排序算法

快速排序算法

时间:2022-10-04 17:23:38浏览次数:57  
标签:基准值 算法 序列 排序 快速 比较

快速排序(Quick Sort)是对冒泡排序的一种改进,通过一趟排序将数据序列分成两部分,其中一部分的所有数据比另一部分的所有数据都要小,然后按此方法对两部分数据分别进行快速排序,整个排序过程递归进行,最终使整个数据序列变成有序的序列。
快速排序算法的原理
快速排序算法的原理是:选择一个关键值作为基准值(一般选择第一个元素为基准元素),将比基准元素大的都放在右边的序列中,将比基准值小的都放在左边的序列中。具体的循环过程如下:
(1)从后面向前比较,用基准值和最后一个值进行比较。如果比基准值小,则交换位置;如果比基准值大,则继续比较下一个值,直到找到第一个比基准值小的值才交换位置
(2)在从后面找到第一个比基准值小的值并交换位置后,从前向后开始比较,如果有比基准值大的,则交换位置;如果没有,则继续比较下一个,直到找到第一个比基准值大的值才交换位置。
(3)重复执行以上过程,直到从前向后比较的缩影大于等于从后向前比较的索引,则结束一次循环。这时对于基准值来说,左右两边都是有序的数据序列。
(4)重复循环以上过程,分别比较左右两边的序列,直到整个数据序列有序。

标签:基准值,算法,序列,排序,快速,比较
From: https://www.cnblogs.com/Where-am-i/p/16754071.html

相关文章

  • 合并两个list对象集合并排序
    List对象合并后进行排序业务场景用户相关字段数量较多时,会进行分表,用相同的id进行关联,而后进行数据查询时,需要将两张或者多张表的数据进行拼接思路:将其中一个list1转换为map......
  • 合并两个list对象集合并排序
    List对象合并后进行排序业务场景用户相关字段数量较多时,会进行分表,用相同的id进行关联,而后进行数据查询时,需要将两张或者多张表的数据进行拼接思路:将其中一个list1转换为map......
  • PCA算法介绍及源码实现
    前言PCA(主成分分析)是十大经典机器学习算法之一。PCA是Pearson在1901年提出的,后来由Hotelling在1933年加以发展提出的一种多变量的统计方法。PCA算法介绍PCA(principalc......
  • 快速准确地评估带宽
    网络质量提升的前提是网络没有发生拥塞,而为了防止发生网络拥塞,直播客户端就要有快速、准确地评估带宽的方法。在实时通信领域,有四种常见的带宽评估方法,分别是Goog-REMB、G......
  • 二分查找算法的起步判定优化
    packagecom.example.grokkingalgorithmsdemo.binarysearch;importlombok.extern.slf4j.Slf4j;/***@Author:Frank*@Date:2022-06-0412:12*/@Slf4jpublicclassBin......
  • 经典算法
     算法稳定性稳定性是指在一组待排序记录中,如果存在任意两个相等的记录R和S,且在待排序记录中R在S前,如果在排序后R依然在S前,即它们的前后位置在排序前后不发生改变,则......
  • 冒泡排序算法
    冒泡排序算法(BubbleSort)算法是一种简单的排序算法,它在重复访问要排序的元素列时,会依次比较相邻的两个元素,如果左边的元素大于后边的元素,就将二者交换位置,如此重复,......
  • 二分查找算法
    二分查找算法又叫做折半查找,要求待查找的序列有序,每次查找都取中间的值与待查关键字进行比较,如果中间位置的值比待查关键字大,则在序列的左半部分继续执行该查找过程,如......
  • 排序只要按顺序走就一定没问题
    只要遵循第一个先和第二个比较,第二个在和第三个比较,就不用再第一个和第三个比较了三个都比:#include<iostream>#include<cmath>#include<algorithm>usingnamespac......
  • 快速看懂前端在干啥!
    前言本文旨在帮助我的搭档快速看懂这些前端语言在讲什么东东。非常简略!!!!一、认识HTML基本结构有开就有合,例如<p>和</p>、<h1>和</h1>等。当然也有直接自闭合的例......