作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定更改的合并排序算法,如果数组已经排序,算法将返回数组,而不是进行 2 次以上的递归调用。假设我们在一个数组上运行新算法,其中每个值恰好出现 n/log(n) 次。 (为此,数组包含 log(n) 个不同的值)。
该算法的时间复杂度是多少?
最佳答案
如果您怀疑数组中的不同值很少,那么扫描数组以提取这些值、对它们进行排序并进行计数将比对数组执行完全合并排序花费更少的时间:
因此时间复杂度可以降低到O(N)。
但请注意:
综上所述,在特殊情况下可以有效降低复杂度,但在一般情况下却很棘手。
关于java - 求某些条件下归并排序的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55883515/
本文实例汇总了Java各种排序算法。分享给大家供大家参考,具体如下: 1. 冒泡排序: ?
1.冒泡排序 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 算法步
前言 平时用惯了高级语言高级工具高级算法,难免对一些基础算法感到生疏。但最基础的排序算法中实则蕴含着相当丰富的优化思维,熟练运用可起到举一反三之功效。 选择排序 选择排序几乎是
我是一名优秀的程序员,十分优秀!