微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript数组排序汇总

javascript数组排序汇总

rush:js;"> //排序算法 window.onload = function(){ var array = [0,1,2,44,4,324,5,65,6,34,43,62,51,56,76,7,45,8]; //var array = [4,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;
}
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐