各种排序最坏情况下比较次数_快速排序最坏需要多少趟排序

各种排序最坏情况下比较次数_快速排序最坏需要多少趟排序都不知道怎么回答,各种排序说的也太多了,这里讲几种简单的吧,希望对你有帮助!比如n个顺序存储元素进行排序,a[0]做“哨兵”(即a[0]不存数据,而是用作辅存空间使用)的情况1直接插入排序:比较次数最少n-1次;最多(n-1)(n+2)/2移动次数最少0;最多(n-1)(n+4)/2


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

都不知道怎么回答,各种排序说的也太多了,这里讲几种简单的吧,希望对你有帮助!
比如n个顺序存储元素进行排序,a[0]做“哨兵”(即a[0]不存数据,而是用作辅存空间使用)的情况
1 直接插入排序:比较次数 最少n-1次;最多(n-1)(n+2)/2
                            移动次数 最少0; 最多(n-1)(n+4)/2
                           使用一个辅助存储空间,是稳定的排序;

2 折半插入排序:比较次数 最少与最多同,都是n*log2n(其中2为底,下边表示同),
                移动次数 最少0,最多时间复杂度为O(n2);(n的平方,以下也如此表示);
                使用一个辅助存储空间,是稳定的排序;

3 冒泡排序: 比较最少为:n-1次,最多时间复杂度表示为o(n2);
                      移动次数最少为0,最多时间复杂度表示为O(n2);
                        使用一个辅存空间,是稳定的排序;

4 简单选择排序: 比较次数没有多少之分,均是n(n-1)/2;
                            移动次数最少为0,最多为3(n-1);
                             使用一个辅存空间,是稳定的排序;

5 快速排序:比较和移动次数最少时间复杂度表示为O(n*log2n);
                    比较和移动次数最多的时间复杂度表示为O(n2);
                    使用的辅助存储空间最少为log2n,最多为n的平方;是不稳定的排序;

6 堆排序: 比较和移动次数没有好坏之分,都是O(n*log2n);
                  使用一个辅存空间,是不稳定的排序;

7 2-路归并排序:比较和移动次数没有好坏之分,都是O(n*log2n);
                    需要n个辅助存储空间,是稳定的排序;

另外还有很多的排序方法如 希尔排序,基数排序,2-路插入排序 等等很多的排序方法,这里就不一一列举了,希望列举的对你有帮助!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172502.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • NLP系列笔记:通俗理解LDA主题模型

    NLP系列笔记:通俗理解LDA主题模型0前言    印象中,最开始听说“LDA”这个名词,是缘于rickjin在2013年3月写的一个LDA科普系列,叫LDA数学八卦,我当时一直想看来着,记得还打印过一次,但不知是因为这篇文档的前序铺垫太长(现在才意识到这些“铺垫”都是深刻理解LDA的基础,但如果没有人帮助初学者提纲挈领、把握主次、理清思路,则很容易陷入LDA的细枝末节之中),还是因为其中的数学推导细节太多,导致一直没有完整看完…

    2022年8月11日
  • Spring Boot 中的异步调用[通俗易懂]

    Spring Boot 中的异步调用[通俗易懂]SpringBoot中的异步调用通常我们开发的程序都是同步调用的,即程序按照代码的顺序一行一行的逐步往下执行,每一行代码都必须等待上一行代码执行完毕才能开始执行。而异步编程则没有这个限制,代码的调用不再是阻塞的。所以在一些情景下,通过异步编程可以提高效率,提升接口的吞吐量。这节将介绍如何在SpringBoot中进行异步编程。要开启异步支持,首先得在SpringBoot入口类上加上@EnableAsync注解:@SpringBootApplication@EnableAsyncpublic

    2022年7月11日
  • 怎么完全卸载赛门铁克_如何干净彻底卸载诺顿?

    怎么完全卸载赛门铁克_如何干净彻底卸载诺顿?诺顿有那么难卸载吗?我来教你如何彻底卸载诺顿!本方法跟重装的新系统差不多,没痕迹!很多朋友都遇到过无法卸载诺顿的问题,其实这是有原因的,因為它和操作系统高度整合,所以很多文件会直接注册到系统中,所以比起一般软件来是难点,但这样可以更好的保护您的系统安全。通过以下的方法可以完全卸载掉诺顿,可以顺利的安装诺顿新版本或者其它的杀毒软件。1.单击【开始】-【控制面板】,打开控制面板窗口,单击【添加删除程…

    2022年6月3日
  • 大数据分析应用领域有哪些[通俗易懂]

    大数据分析应用领域有哪些[通俗易懂]  软件和服务的大数据分析市场收入预计将从2018年的$42B增长到2027年的$103B,复合年增长率(CAGR)为10.48%。这就是为什么,大数据分析认证是业内最全神贯注的技能之一。在这个“大数据分析应用领域”文章中,我将带您进入各个行业领域,在这里我将解释大数据分析如何使它们发生革命性变化。  大数据分析应用  大数据分析应用程序的主要目标是通过分析大量数据来帮助公司做出更具信息量的业务决策。它可能包括Web服务器日志,Internet点击流数据,社交媒体内容和活动报告,来自客户电子邮

    2022年5月29日
  • 企业微信通讯录回调密文解析及微信支付回调密文解析异常处理

    企业微信通讯录回调密文解析及微信支付回调密文解析异常处理企业微信通讯录回调密文解析及微信支付回调密文解析异常处理产生异常表现:javax.crypto.IllegalBlockSizeException:Inputlengthmustbemultipleof16whendecryp原因:因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制解决方案:替换jdk和jre中的local_policy.jar,US_export_policy.jar具体目录:1、jre目录/lib/security/policy/

    2022年5月18日
  • ASF(传感器)

    ASF(传感器)

    2022年1月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号