博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
麻省理工学院公开课-第四讲:快速排序 及 随机化 算法
阅读量:4511 次
发布时间:2019-06-08

本文共 507 字,大约阅读时间需要 1 分钟。

http://deepin.iteye.com/blog/1392647

http://www.cnblogs.com/banli/archive/2013/06/02/3113338.html

快速排序

  • 分治思想
  • 原地排序
  • 很实用

分治思想:

  1. 分,选择一个基准元素(pivot),将数组分为两部分,左边是比基准元素小的数,右边是比基准元素大的数(基准元素通常选第一个或最后一个).
  2. 治,递归地对两个数组进行快速排序.

时间复杂度:

  • 最坏的情况: Θ(n2). 原因是选择了最小或最大的元素作为基准元素。
  • 最好的情况:Θ(n lg n).

快速排序与归并排序的比较:

  两者都能达到Θ(n lg n)的时间复杂度,而且归并排序最差也能达到Θ(n lg n). 快速排序最差的时间复杂度为Θ(n2). 但是,在实际使用当中,快速排序通常要比归并排序快3倍左右,而且快排是就低排序,在缓存和虚拟内存中实现较好。

 

算法改进:随机化快速排序

  • 在划分子数组时,随机选择基准元素
  • 划分子数组足够小时,直接采用插入排序

转载于:https://www.cnblogs.com/cainiao-xf/p/4570281.html

你可能感兴趣的文章
java基础篇---网络编程(UDP程序设计)
查看>>
Kafka Producer相关代码分析【转】
查看>>
LeetCode 121. Best Time to Buy and Sell Stock
查看>>
麻省理工学院公开课-第四讲:快速排序 及 随机化 算法
查看>>
复杂表达式
查看>>
R12.1.3 & R12.2.X 注册客户化应用
查看>>
实验十七 线程同步控制
查看>>
SQL Server 触发器
查看>>
Ural 1146 Maximum Sum(DP)
查看>>
《STL源代码分析》---stl_stack.h读书笔记
查看>>
UVA 10385 - Duathlon(三分法)
查看>>
div同时使用两个class
查看>>
在路上,三线城市互联网创业记录
查看>>
spark 编译遇到的错误及解决办法(五)
查看>>
框架篇: React + React-Router + antd + nodejs + express框架开发运用(nodejs做前后端server)...
查看>>
8、使用转换流处理标准输入
查看>>
Git 常用命令
查看>>
Why does Http header contains "X-SourceFiles"?
查看>>
uva 10976 fractions again(水题)——yhx
查看>>
爬虫实战篇---数据入库之去重与数据库
查看>>