快速排序为什么是nlogn?

作者&投稿:何狐 (若有异议请与网页底部的电邮联系)
~

 快速排序的性能高度依赖于你选择的基准值。 最糟情况 假设你总是将第一个元素用作基准值,且要处理的数组是有序的。

最糟情况

假设你总是将第一个元素用作基准值,且要处理的数组是有序的。由于快速排序算法不检查输入数组是否有序,因此它依然尝试对其进行排序。注意,数组并没有被分成两半,相反,其中一个子数组始终为空,这导致调用栈非常长。

平均情况

假设你总是将中间的元素用作基准值,在这种情况下,调用栈如下。 调用栈短得多!因为你每次都将数组分成两半,所以不需要那么多递归调用。你很快就到达 了基线条件,因此调用栈短得多。




想具体了解百度的发家史
除了相关性排序外,Lycos还提供了前缀匹配和字符相近限制,Lycos第一个在搜索结果中使用了网页自动摘要,而最大的优势还是它远胜过其它搜索引擎的数据量:1994年8月--394,000 documents;1995年1月--1.5 million documents;1996年11月--over 60 million documents。(注:1999年4月,Lycos停止自己的Spider,改由Fast提供...

专利号 PCT\/FI 2004\/000756是个什么东西?越详细越好
描述信息外部特征的检索语言包括题名(书名、刊名、篇名)、著者姓名\\单位名称、出版事项、代码\\序号(如专利号、报告号、标准号)等,其作为检索标志直接明了,使用时较为简单。描述信息内容特征的检索语言包括分类语言和主题语言,主题语言又可分为关键词语言、单元词语言、标题词语言和叙词语言。12、为什么要创建检索...

为什么Oracle数据库不用索引来查找数据
ORACLE的共有Sort Merge Join(SMJ)、Hash Join(HJ)和Nested Loop Join(NL)。在两张表连接,且内表的目标列上建有索引时,只有Nested Loop才能有效地利用到该索引。SMJ即使相关列上建有索引,最多只能因索引的存在,避免数据排序过程。HJ由于须做HASH运算,索引的存在对数据查询速度几乎没有影响。 第四,看连接顺序...

低丰度蛋白分离与鉴定
·流速范围100nl/mm,1μl/mm 还有内径为100μm的同类色谱柱,用于需要较高流速的应用。富集柱 纳流蛋白质组学解决方案还包括ZORBAX 300SBCl8和C8富集柱(0.3x 5mm)。这些富集柱可出色地完成低浓度多肽混合物韵浓缩和脱盐。还有可以组成完全两维LC分离体系的离子交换色谱柱。

linux常用命令
linux常用命令如下:1、查看内核版本:uname -a。2、控制台-》图形界面:init 5或者startx。3、图形界面-》控制台: init3或者直接注销。4、如何查看ip地址:ifconfig。5、配置ip:ifconfig eth0 ip地址。6、重启:reboot 或者 shutdown -r now。7、普通用户切换到系统用户:su。8、注销用户指令:...

超高分悬赏关于2006河南中考
进档考生录取专业时第一志愿考生,以实考分排队,若考生的第一志愿专业未满额则将该生录取为该专业;若考生的成绩未达到其第一志愿专业的录取分数,则其总分减去专业级差分后参与第二专业志愿排序;若第二专业志愿仍不能录取,再减去一个级差分参与第三志愿排序,如此依次类推。对于非第一(学校)志愿考生则先减去一定...

互联网上第一个搜索引擎是什么
它没有Stop Words,它有出色的Current News、7,100多出版物组成的Special Collection、良好的高级搜索语法,第一个支持对搜索结果进行简单的自动分类。(2002年1月16日,Northernlight公共搜索引擎关闭,随后被divine收购,但在Nlresearch,选中"World Wide Web only",仍可使用Northernlight搜索引擎)...

QQ拼音输入法的更新记录
5.优化核心词库,候选词排序更贴近用户习惯;6.优化QQ拼音小字典,增加每日新词显示;7.优化词库同步和上传下载配置,同步内容自由选择;8.优化双拼自定义短语,如微软拼音双拼方案下输入blffhk可输出“%”;9.优化下载模块,词库更新更稳定快速;10.优化i 模式,可快捷关闭和开启;11.优化网络代理,提高网络连接成功率;12....

网络上的搜索引擎怎样分类?个类列两三个,谢谢
搜索引擎的原理,可以看做三步:从互联网上抓取网页→建立索引数据库→在索引数据库中搜索排序。从互联网上抓取网页——利用能够从互联网上自动收集网页的Spider系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集回来。建立索引数据库——由分析索引系统程序对收集回来...

搜索 连接 是 怎么回事
(2002年1月16日,Northernlight公共搜索引擎关闭,随后被divine收购,但在Nlresearch,选中"World Wide Web only",仍可使用Northernlight搜索引擎)1998年10月之前,Google只是Stanford大学的一个小项目BackRub。1995年博士生Larry Page开始学习搜索引擎设计,于1997年9月15日注册了google.com的域名,1997...

吉林省17792906073: 归并排序的辅助空间为什么是O(N)? -
经凭歧星: O(nlogn)和O(nlog2n)是一样的..归并排序如果不借助辅助空间的话,复杂度为O(n^2),借助的话就是O(nlogn)(O(nlog2n))

吉林省17792906073: 快速排序法 平均情况时间复杂度平均情况我知道是nlog(n),我想请问这个结果是怎么推出来的? -
经凭歧星:[答案] 快速排序时间复杂度可以写成 T(n)=2T(n/2)+n,这个求解就是T(n)=nlogn

吉林省17792906073: 快速排序与希尔排序哪个效率更高? -
经凭歧星: 个人认为是快速排序. 快速排序的最差复杂度可能会降为n^2,最快则是nlogn,但是,平均情况下是较快的. 而 希尔排序的最差情况下,复杂度可能会降为n^s 到n^s之间,(1<=s<=2),平均则是nlog^2n.理论上来看,希尔排序可能是效率...

吉林省17792906073: 为什么快速排序最坏情况下时间效率是n^2,而比较次数是n(n - 1)/2,两个的意思不一样嘛,我不懂 -
经凭歧星: 时间效率是指是n 还是 n^2 也即是常数倍,还是平方倍 比较次数就是实际比较的次数,其推出时间效率

吉林省17792906073: 为什么不把合并排序称为快速排序 -
经凭歧星: 首先你说归并排序最坏的情形为O(NlogN),这是不正确的归并排序如果不借助辅助空间的话,复杂度为O(n^2),借助的话就是O(nlogn)(O(nlog2n))归并排序 平均复杂度是 O(nlogn) 比较快 快速排序快速排序的最坏情况基于每次划分对主元的选择...

吉林省17792906073: 为什么java底层使用快速排序而不使用堆排序 -
经凭歧星: 一般情况下,快速排序效率要高于堆排序.因为堆排序的常数较大(不过也是1~2之间吧).快速排序的平均时间复杂度是O(1.39nlogn).一般来说,除非有需要绝对保证不能出现O(n^2)的要求,不使用堆排.堆排序需要有效的随机存取.

吉林省17792906073: 为什么快速排序算法的时间复杂度是O(nlogn)而不是O(n²)? -
经凭歧星: 最坏情况下数组从大到小排列,快速排序退化为T(n)=T(n-1)+k,由递归表达式可算出时间复杂度为O(n2)

吉林省17792906073: 内存足够大,用哪种排序算法好 -
经凭歧星: 很可能答案是快速排序,基于以下几点理由:1.快速排序的概率时间是接近o(n)的,是几种 n*logn中最好的2.快速排序的空间复杂度是 o(n)的,优于归并的 o(2*n)3.内存的好处就是读取存取速度快,而恰恰快排是依赖R/W的排序

吉林省17792906073: 为什么说快速排序是对冒泡排序的改进 -
经凭歧星: 抽象点,你可以这样想,如果是从小到大排列: 冒泡排序是将小的往前移,大的往后移,移动速度可能很慢,但保证每次移动都会有一个最小的移动到所在序列的第一个位置上. 快速排序则是将一个序列分成大小两个小序列,然后再按照这种方法去分,直到只有两个或以下再排序,这是它保证有序,且是从小到大的一个个小序列组合成有序序列. 在某种意义上,快速排序是从整体到部分再到个体的处理;而冒泡排序则是一个个个体去比较,所以快速排序要比冒泡排序更为高级,但因为太过求快,以至于它是不稳定的.但由于快速排序是一段序列按照小大分开后再处理更小段的排序,所以在运行上可能比冒泡排序更快,所以快速排序是对冒泡排序的改进. 打到这里也差不多了,题主望采纳!

吉林省17792906073: 快速排序为什么是效率最高的?快速排序效率最差为O(n*n),平均为O(nlogn).1.若果是最坏情况的话岂不是效率很低?2.对比基数排序的线形时间不是基数排... -
经凭歧星:[答案] 别拿最坏的情况和其他排序算法的最好的情况比,况且排序算法本来就和数据的组织形式有关.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网