Array sorting

Benchmark created on


Preparation HTML

<script>
  function partition(array, begin, end, pivot)
    {
          var piv=array[pivot];
          swap(array, pivot, end-1);
          var store=begin;
          var ix;
          for(ix=begin; ix<end-1; ++ix) {
                  if(array[ix]<=piv) {
                          swap(array,store, ix);
                          ++store;
                  }
          }
          swap(array,end-1, store);
    
          return store;
    }
    
    function swap(arr, a, b, c){
      c=arr[a];
      arr[a]=arr[b]
      arr[b]=c;
    }
    
    function qsort(array, begin, end)
    {
          if(end-1>begin) {
                  var pivot=begin+Math.floor(Math.random()*(end-begin));
    
                  pivot=partition(array, begin, end, pivot);
    
                  qsort(array, begin, pivot);
                  qsort(array, pivot+1, end);
          }
    }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
native
["a","c","b","a","d"].sort();
["b","x","y","c","b"].sort();
ready
qsort
qsort(["a","c","b","a","d"],0,5)
qsort(["b","x","y","c","b"],0,5)
ready

Revisions

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