SOURCE

arr = [1,5,36,25,47,24,96,34,58];

function Sort(arr){
  //冒泡排序,相邻元素比较大小排序
 /* for(var i=0;i<arr.length-1;i++){
    for(var j=i;j<arr.length-1;j++){
      if(arr[j]>arr[j+1]){
        var temp = arr[j+1];
        arr[j+1] = arr[j];
        arr[j] = temp;
      }
    }
  }*/
  
  //选择排序,每次寻找最大/小的数并放在数组开始
  /*for(var i=0;i<arr.length-1;i++){
    var minIndex = i;
    for(j=i;j<arr.length-1;j++){
        if(arr[minIndex]>arr[j+1]){
          minIndex=j+1;
        }
    }
    if(minIndex!=i){
      var temp = arr[minIndex];
      arr[minIndex] = arr[i];
      arr[i] = temp;
    }
  }*/
  
  //插入排序,依次选取数值插入到已排序的队列中
 /* for(var i=1;i<arr.length;i++){
		var key=arr[i];
    var j = i - 1;
    while(arr[j]>key){
      arr[j+1] = arr[j];
      j--;
    }
    arr[j+1] = key;
  }*/
  
  //希尔排序
  /* var len = arr.length,
  temp,
  gap = 1;
  console.time('希尔排序耗时:');
  while(gap < len/5) { //动态定义间隔序列
    gap =gap*5+1;
  }
  for (gap; gap > 0; gap = Math.floor(gap/5)) {
    for (var i = gap; i < len; i++) {
      temp = arr[i];
      for (var j = i-gap; j >= 0 && arr[j] > temp; j-=gap) {
        arr[j+gap] = arr[j];
      }
      arr[j+gap] = temp;
    }
  }
  console.timeEnd('希尔排序耗时:');*/

  //快速排序,每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。
  function quickSort(arr){
    if(arr.length <= 1){
      return arr;
    }
    var left = [];
    var right = [];
    var temp = arr[0];
    for(var i = 1; i < arr.length; i++){
      if(arr[i] <= temp){
        left.push(arr[i]);
      }else{
        right.push(arr[i]);
      }
    }
    left.push(temp);
    left = arguments.callee(left);
    right = arguments.callee(right);
    
    return left.concat(right);
  }
  //一句话写快速排序
  function quickSort(a) {
  return a.length <= 1 ? a : quickSort(a.slice(1).filter(item => item <=a[0])).concat(a[0] , quickSort(a.slice(1).filter(item =>item>a[0])));
}

  return arr;
}
console.log(Sort(arr));
console 命令行工具 X clear

                    
>
console