【问题标题】:Testing the average running time of binary search测试二分查找的平均运行时间
【发布时间】:2015-08-07 09:16:02
【问题描述】:

给定已排序的 n 个唯一元素数组,如何测试二分查找的运行时间?具体来说,我正在寻找的键的位置将导致平均运行时间?例如,当我测试线性搜索的平均时间时,我创建了一个随机唯一元素数组,元素>-1,并将数字 -1 放在数组中间,然后使用线性搜索进行搜索我实现的功能。

【问题讨论】:

    标签: c arrays search binary


    【解决方案1】:

    1) 开始时间计数
    2) 从数组中选择一个随机数
    3) 运行您的搜索算法
    4) 从步骤 (2) 重复 N (N=zillion) 次
    5) 停止时间计数
    6) 时间计数除以 N
    利润。

    【讨论】:

    • 我无法理解您如何将二进制搜索的平均情况与我们正在搜索的随机键联系起来。这与我提到的线性搜索示例类似,与它们在数组中的键位置有关吗?我期待类似的说法,即键的最佳情况是在中间,据此,键的位置将导致二进制搜索的平均情况。
    • 您要测试还是计算?如果是前者-答案中概述了该方式。如果是后者——你可以用笔和纸来做——总结每个索引的运行时间并除以它们的数量。完全分析。
    • 你看我已经使用c中的clock()函数计算了线性搜索的平均时间,将键放在数组的中间(线性搜索的平均情况)然后搜索它得出了我的结论,数组大小通过 1 亿增量从 1 亿整数到 10 亿整数不等。我基本上想对二分搜索做同样的事情,我想知道的是,对于一般情况,键应该放在哪里。
    猜你喜欢
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多