首页 > 编程语言 > 详细

排序-快速排序

时间:2019-12-28 23:42:20      阅读:96      评论:0      收藏:0      [点我收藏+]

快速排序

基本知识

稳定性:不稳定
存储方式:内部排序
空间复杂度:O(logn)
最坏时间复杂度:O(n2)
最好时间复杂度:O(n logn)
平均时间复杂度:O(n logn)

基本思想

快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)
快速排序又是一种分而治之思想在排序算法上的典型应用
本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法

排序步骤

  1. 从数列中挑出一个元素,称为 "基准"(pivot)
  2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边),在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作
  3. 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序

?

排序-快速排序

原文:https://www.cnblogs.com/yanghanwen/p/12113333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!