【快速排序算法详解】Java/Go/Python/JS/C不同语言实现

分享
计算机软件开发 2024-9-21 13:54:05 82 0 来自 中国
【快速排序算法详解】Java/Go/Python/JS/C不同语言实现

分析

快速排序(QuickSort),又称分区交换排序(partition-exchange sort),简称快排。快排是一种通过基准分别区块,再不绝交换左右项的排序方式,其接纳了分治法,镌汰了交换的次数。它的根本头脑是:通过一趟排序将要排序的数据分割成独立的两部门,此中一部门的全部数据都比别的一部门的全部数据都要小,然后再按此方法对这两部门数据分别举行快速排序,整个排序过程可以递归或迭代举行,以此让整个数列变成有序序列。
实现过程


  • 在待排序区间找到一个基准点(pivot),便于明白一样寻常是位于数组中央的那一项。
  • 逐个循环数组将小于基准的项放左侧,将大于基准的项放在右侧。一样寻常通过交换的方式来实现。
  • 将基准点左侧全部项和基点右侧全部项分别通过递归(或迭代)方式重复第1项,直到全部数组都交换完成。
体现图

性能分析

均匀时间复杂度:O(NlogN)
最佳时间复杂度:O(NlogN)
最差时间复杂度:O(N^2)
空间复杂度:根据实现方式的不同而不同,可以查察不同版本的源码
代码

Java
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-23 00:15, Processed in 0.155037 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表