45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:javascript数组排序的方法实例

javascript数组排序的方法实例

2015-07-24 07:42:07 来源:www.45fan.com 【

javascript数组排序的方法实例

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;
  }
 }

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


本文地址:http://www.45fan.com/bcdm/15510.html
Tags: JavaScript 数组 排序
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部