Javascript 成功搜索二进制搜索算法的执行时间
我已经使用Node.js实现了二进制搜索算法。我正在记录算法在随机生成的数组中搜索数字所花费的时间。我能够输出算法在搜索失败时花费的时间 但我无法计算出如何衡量算法成功搜索数组中的数字所花费的时间 这是我的密码-Javascript 成功搜索二进制搜索算法的执行时间,javascript,arrays,node.js,algorithm,binary-search,Javascript,Arrays,Node.js,Algorithm,Binary Search,我已经使用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
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();
函数二进制搜索(A,K)
{
var l=0;//最小值
var r=A.length-1;//最大值
var n=A.长度;
var time=process.hrtime();
而(l在调用二进制搜索函数之前启动计时器,并在调用之后结束计时器..无论搜索是否成功,您都将获得时间
var time = process.hrtime();
var result = binarySearch(sort, randomKey);
time = process.hrtime(time);
......
只需将函数中return-1
前面的那两行复制到另一行return
前面即可。@Pointy thanky:)有效:)谢谢,这完全有道理:)