LiuL0703 / LiuL0703.github.io

Blog

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JavaScript 排序

LiuL0703 opened this issue · comments

快排

function quickSort(arr){
    if(arr.length === 0) return [];
    var l = [];
    var r= [];
    var m = ~~(arr.length/2);
    var flag = arr.splice(m,1);
    for(let i = 0; i < arr.length; i++){
        arr[i] < flag ? l.push(arr[i]): r.push(arr[i]);
    }
    return quickSort(l).concat(flag,quickSort(r));
}

quickSort([5,4,3,2,7,1])   // [1,2,3,4,5,7]

冒泡

function bubbleSort(arr){
    for(let i = 0; i < arr.length; i++){
	for(let j = 0; j < arr.length - 1 - i; j++){
	    if(arr[j]>arr[j+1]){
		[arr[j],arr[j+1]] = [arr[j+1],arr[j]];
            }
	}
    }
    return arr;
}

选择排序

var selectSort = function(arr){
  for(var i = 0; i < arr.length; i++){
    var min_index = i;
    for(var j = i+1; j < arr.length; j++){
      if(arr[min_index]>arr[j]){
        min_index = j;
      }
    }
    [arr[min_index],arr[i]] = [arr[i],arr[min_index]];
  }
  return arr;
}