Sorted insertion

Benchmark created on


Preparation HTML

<script>
  function inject1(item, stack) {
   for (var i = 0, current; current = stack[i]; i++) {
    if (current < item) {
     stack.splice(i, 0, item);
     break;
    }
   }
   if (!current) {
    stack.push(item);
   }
  }
  
  function inject2(item, stack) {
   stack.push(item);
   stack.sort();
  }
  
  function inject3(item, stack) {
   stack.unshift(item);
   stack.sort();
  }
  var array = [];
  while (array.length < 1000) {
   array.push(Math.random());
  }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
inject1
var stack = [],
    i;
for (i = 0; i < array.length; i++) {
 inject1(array[i], stack);
}
ready
inject2
var stack = [],
    i;
for (i = 0; i < array.length; i++) {
 inject2(array[i], stack);
}
ready
inject3
var stack = [],
    i;
for (i = 0; i < array.length; i++) {
 inject3(array[i], stack);
}
ready
push
var stack = [],
    i;
for (i = 0; i < array.length; i++) {
 stack.push(array[i]);
}
stack.sort();
ready

Revisions

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