【问题标题】:What is better sorting an unsorted array and binary searching n times or linear searching unsorted array n times?对未排序数组进行排序和二进制搜索 n 次或线性搜索未排序数组 n 次更好?
【发布时间】:2019-08-30 21:14:04
【问题描述】:

我想搜索一个未排序的数组,n 次查找小于给定数量的特定值集,而不是数组元素。那么排序然后进行n次二进制搜索还是在未排序的数组中进行线性搜索更好

【问题讨论】:

    标签: sorting time-complexity binary-search


    【解决方案1】:

    如果 n 很小,则在无序数组中搜索具有性能优势:

    n = 小

    Sorting: Zero time (0)
    Searching: Linear time (n)    
    
    Sum: Linear time (n)
    

    n = 大

    Sorting: Zero time (0)
    Searching: Quadratic time (n²) 
    
    Sum: Quadratic time (n²)
    

    如果 n 较大,则最好先对数组进行排序,然后进行二分查找:

    n = 小

    Sorting: Linearithmic time (n log n)
    Searching: Logarithmic time (log n)
    
    Sum: Linearithmic time (n log n)
    

    n = 大

    Sorting: Linearitmnic time (n log n)
    Searching: Linearithmic time (n log n)
    
    Sum: Linearithmic time (n log n)
    

    我不能告诉你临界点在哪里,但你可以做一些实验。 ;)

    【讨论】:

      猜你喜欢
      • 2010-12-25
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2012-08-28
      • 2018-11-11
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      相关资源
      最近更新 更多