Dazzler - 2 years ago 153
Node.js Question

# Execution time for successful search Binary Search algorithm

I have implemented Binary Search Algorithm using Node.js. I am recording the time taken by the algorithm to search for a number in a random generated array. I am able to output the time taken by the algorithm for an unsuccessful search.

But I am not able to figure out how to measure the time taken by the algorithm to successfully search a number in an array.

Here is my code -

``````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)
{
}
else
{
console.log('Element found in position ',result);
}
}
}

var maxArrayValue = 1000;

program();
``````

I am using
`var time = process.hrtime();`
to start the timer at the beginning of the algorithm and using
`time = process.hrtime(time);`
to end the timer and output it in the console.

How can I measure the time taken by the algorithm to successfully search a number in an array.

Any help would be greatly appreciated.

``````var time = process.hrtime();