读书笔记-《数据结构与算法》-摘要6[快速排序]

快速排序

核心:快排是一种采用分治思想的排序算法,大致分为三个步骤。

  1. 定基准------首先随机选择一个元素最为基准
  2. 划分区------所有比基准小的元素置于基准左侧,比基准大的元素置于右侧
  3. 递归调用------递归地调用此切分过程

快排的实现与『归并排序』的区别主要有如下两点:

  1. 归并排序将数组分成两个子数组分别排序,并将有序的子数组归并以将整个数组排序。递归调用发生在处理整个数组之前。
  2. 快速排序将一个数组分成两个子数组并对这两个子数组独立地排序,两个子数组有序时整个数组也就有序了。递归调用发生在处理整个数组之后。

书上的例子好多是用 Python 写的,看不懂,上网看了几篇文章,发现有个大神的文章浅显易懂,非常适合我这种小白。推荐下:

【Java】快速排序

(图网,侵删)

相关推荐
小李子呢021113 小时前
前端八股6---v-model双向绑定
前端·javascript·算法
XH华14 小时前
数据结构第九章:树的学习(下)
数据结构·学习
2301_8227032014 小时前
Flutter 框架跨平台鸿蒙开发 - 创意声音合成器应用
算法·flutter·华为·harmonyos·鸿蒙
cmpxr_15 小时前
【C】数组名、函数名的特殊
c语言·算法
KAU的云实验台15 小时前
【算法精解】AIR期刊算法IAGWO:引入速度概念与逆多元二次权重,可应对高维/工程问题(附Matlab源码)
开发语言·算法·matlab
会编程的土豆15 小时前
【数据结构与算法】再次全面了解LCS底层
开发语言·数据结构·c++·算法
大熊背16 小时前
如何利用Lv值实现三级降帧
算法·自动曝光·lv·isppipeline
大尚来也16 小时前
驾驭并发:.NET多线程编程的挑战与破局之道
java·前端·算法
向阳而生,一路生花16 小时前
深入浅出 JDK7 HashMap 源码分析
算法·哈希算法