binary search vs loop (v19)

Revision 19 of this benchmark created by Rohit Vighne on


Description

Looks at the performance difference between brute force searching and binary search

Preparation HTML

<script>
  for (var i = 0, searchArr = []; i < 2000; i++) {
   searchArr[i] = i;
  }
  
  var count = 0,
      curVal = 0;
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
brute force
var num = Math.random() * 2000;

for (var i = 0; i < 2000; i++) {
 curVal = searchArr[i];
 if (curVal === num) {
  break;
 }
}
ready
binary
var num = Math.random() * 2000;

while (num !== curVal) {
 curVal = searchArr[Math.round(searchArr.length / 2)];
 if (searchArr.length > 1) {
  if (curVal > num) {
   searchArr = searchArr.splice(0, searchArr.length / 2);
  } else if (curVal < num) {
   searchArr = searchArr.splice(Math.round(searchArr.length / 2), Math.round(searchArr.length / 2));
  }
 } else {
  curval = searchArr[0];
  break;
 }
}
ready
Array indexOf
var num = Math.random() * 2000;

searchArr.indexOf(num) !== -1;
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.