【问题标题】:time complexity after sorting and using binary search排序和使用二分查找后的时间复杂度
【发布时间】:2020-07-16 15:28:36
【问题描述】:

如果我对一个数组进行合并排序并对其应用二分搜索函数,时间复杂度会是多少?会是O(log n)吗?

因为

o(log n) + o(n log n) = O(log n)

【问题讨论】:

  • 排序为 O(NlogN);您将无法减少低于该时间的时间。并且 O(logN) + O(NlogN) = O(NlogN),而不是 O(logN)。
  • n*x,其中n 是一个非常大的正数,而x 是某个正数,大于x 本身?现在,n*x + x 是否更接近于 n*xx
  • @JonathanLeffler 你对如何搜索时间复杂度为 O(log n) 的元素有任何想法或提示
  • 如果您从已排序的数据开始并在添加和删除数据时对其进行维护,那么您不必在搜索之前执行排序。
  • @ChristianGibbons 我有一个 UNSORTED 数组,我想在数组中找到一个时间复杂度为 O(log n) 的元素

标签: c time time-complexity


【解决方案1】:

确实,合并排序的时间复杂度,在平均情况下,是 O(n log n)。二分查找的时间是 O(log n)。

添加这两种方法,你的复杂度是 O(n log n) 而不是你说的那个。想象一下,你正在添加 1(log n) + n(log n),即 n+1(log n) --> (n log n)。

【讨论】:

    猜你喜欢
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    相关资源
    最近更新 更多