Skip to content

Instantly share code, notes, and snippets.

@fform
Created July 16, 2012 18:34
Show Gist options
  • Save fform/3124201 to your computer and use it in GitHub Desktop.
Save fform/3124201 to your computer and use it in GitHub Desktop.
Javascript list sort speed comparison
function quicksort( arr ){
if(arr.length <= 1){
return arr;
}
var pos = Math.round( Math.round(arr.length / 2) );
var pivot = arr.splice( pos, 1 );
var less = [], more = [];
for(var i in arr){
if(arr[i] > pivot){
more.push( arr[i] );
}else{
less.push( arr[i] );
}
}
return [].concat( quicksort(less), pivot, quicksort(more) );
}
function selectivesort( arr ){
for(var i in arr){
var min = undefined;
for(var j = i; j<arr.length; j++){
if( min === undefined || arr[min] > arr[j] ){
min = j;
}
}
var hold = arr[i];
arr[i] = arr[min];
arr[min] = hold;
}
return arr;
}
var elements = 10000;
var start_time;
var test_array = (function(){ var a = []; for(var i=0;i<elements;i++){ a.push(Math.round(Math.random()*10))}; return a; })();
start_time = new Date();
quicksort(test_array);
qs_elapsed = ((new Date())-start_time)/1000;
start_time = new Date();
selectivesort(test_array);
ss_elapsed = ((new Date())-start_time)/1000;
console.log(elements + " elements");
console.log('Quicksort:', qs_elapsed);
console.log('Selection Sort:', ss_elapsed);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment