C 测试二进制搜索的平均运行时间

C 测试二进制搜索的平均运行时间,c,arrays,search,binary,C,Arrays,Search,Binary,给定一个已排序的n个唯一元素数组,如何测试二进制搜索的运行时间?具体来说,我要搜索的键的位置是什么,它将导致平均运行时间?例如,当我测试线性搜索的平均时间时,我创建了一个随机的唯一元素数组,元素也是-> 1,把数字1放在数组的中间,然后用我执行的一个线性搜索函数搜索它。 1开始时间计数。 2从数组中选择一个随机数 3运行搜索算法 4从步骤2开始重复N N=无数次 5停止时间计数 6将时间计数除以N 利润 我不明白你是如何将二进制搜索的平均情况与我们正在搜索的密钥是否随机联系起来的。它们在数组中的

给定一个已排序的n个唯一元素数组,如何测试二进制搜索的运行时间?具体来说,我要搜索的键的位置是什么,它将导致平均运行时间?例如,当我测试线性搜索的平均时间时,我创建了一个随机的唯一元素数组,元素也是-> 1,把数字1放在数组的中间,然后用我执行的一个线性搜索函数搜索它。

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


利润

我不明白你是如何将二进制搜索的平均情况与我们正在搜索的密钥是否随机联系起来的。它们在数组中的位置是否与我提到的线性搜索示例类似。我期待类似的东西,说最关键的情况是在中间,根据这个键的位置来寻找二进制搜索的平均情况。你想测试还是计算?如果是前者,答案中列出了方法。如果是后者——你可以用笔和纸来做——总结每个索引的运行时间并除以它们的数字。总而言之,你知道,我已经计算了已经使用C中的时钟函数的线性搜索的平均时间,把关键放在线性搜索的平均情况下,然后搜索它,并通过1亿个增量将数组大小从100万个整数变为10亿个整数的结论。我基本上想对二进制搜索做同样的事情,我想知道的是,对于它的平均情况,密钥应该位于哪里。