gpt4 book ai didi

javascript - 成功搜索的执行时间二分搜索算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:00:01 25 4
gpt4 key购买 nike

我已经使用 Node.js 实现了二进制搜索算法。我正在记录算法在随机生成的数组中搜索数字所花费的时间。我能够输出算法为不成功的搜索 所用的时间。

但我无法弄清楚如何衡量算法成功搜索数组中的数字所花费的时间。

这是我的代码 -

function binarySearch(A,K)
{
var l = 0; // min
var r = A.length - 1; //max
var n = A.length;
var time = process.hrtime();

while(l <= r)
{
var m = Math.floor((l + r)/2);

if(K == A[m])
{
return m;
}
else if(K < A[m])
{
r = m - 1;
}
else
{
l = m + 1;
}
}
time = process.hrtime(time);
console.log('%d',time[1]/1000000);
return -1;
}

var randomlyGenerateArray = function(size)
{
var array = [];
for (var i = 0; i < size; i++)
{
var temp = Math.floor(Math.random() * maxArrayValue);
array.push(temp);
}
return array;
}

var sortNumber = function(a, b)
{
return a - b;
}

var program = function()
{
for (var i = 0; i <= 10000; i += 10)
{
var randomArray = randomlyGenerateArray(i);
var sort = randomArray.sort(sortNumber);
var randomKey = 100;
var result = binarySearch(sort, randomKey);
if(result < 0)
{
console.log("Element not found");
}
else
{
console.log('Element found in position ',result);
}
}
}

var maxArrayValue = 1000;

program();

我正在使用 var time = process.hrtime(); 在算法开始时启动计时器并使用 time = process.hrtime(time);结束计时器并将其输出到控制台。

如何衡量算法成功搜索数组中的数字所花费的时间。

如有任何帮助,我们将不胜感激。

最佳答案

在调用二分查找函数前启动你的定时器,调用后结束..无论查找成功与否,你都会得到时间..

var time = process.hrtime();
var result = binarySearch(sort, randomKey);
time = process.hrtime(time);
......

关于javascript - 成功搜索的执行时间二分搜索算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37499345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com