javascript数组排序汇总
//排序算法window.onload = function(){var array = [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,5,6,62,43,5,1,4,51,56,76,7,7,2,1,45,4,6,7,8];//var array = [4,2,5,1,0,3];console.log("原始数组");console.log(array);array = sorting.shellSort(array);// alert(array);console.log("排序后的数组")console.log(array);} var sorting = {//利用sort方法进行排序systemSort: function(arr){return arr.sort(function(a,b){return a-b;});}, //冒泡排序bubbleSort: function(arr){var len=arr.length, tmp;for(var i=0;i<len-1;i++){for(var j=0;j<len-1-i;j++){if(arr[j]>arr[j+1]){tmp = arr[j];arr[j] = arr[j+1];arr[j+1] = tmp;}}}return arr;}, //快速排序quickSort: function(arr){var low=0, high=arr.length-1;sort(low,high);function sort(low, high){if(low<high){var mid = (function(low, high){var tmp = arr[low];while(low<high){while(low<high&&arr[high]>=tmp){high--;}arr[low] = arr[high];while(low<high&&arr[low]<=tmp){low++;}arr[high] = arr[low];}arr[low] = tmp;return low;})(low, high);sort(low, mid-1);sort(mid+1,high);}}return arr;}, //插入排序insertSort: function(arr){var len = arr.length;for(var i=1;i<len;i++){var tmp = arr[i];for(var j=i-1;j>=0;j--){if(tmp<arr[j]){arr[j+1] = arr[j];}else{arr[j+1] = tmp;break;}}}return arr;}, //希尔排序shellSort: function(arr){var h = 1;while(h<=arr.length/3){h = h*3+1; //O(n^(3/2))by Knuth,1973}for( ;h>=1;h=Math.floor(h/3)){for(var k=0;k<h;k++){for(var i=h+k;i<arr.length;i+=h){for(var j=i;j>=h&&arr[j]<arr[j-h];j-=h){var tmp = arr[j];arr[j] = arr[j-h];arr[j-h] = tmp;}}}}return arr;}}以上所述就是本文的全部内容了,希望大家能够喜欢。