1. 程式人生 > 其它 >js的幾種排序演算法

js的幾種排序演算法

1.氣泡排序
function bubbleSort(arr){
  var i = 0,
      j = 0;
      temp = 0;
  for(i=1; i<arr.length; i++){
    for(j=0; j<=arr.length-i; j++){
      // ">" 從小到大排序
      // "<" 從大到小排序
      if(arr[j] > arr[j+1]){
        temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp;
      }
    }
  }
  return arr;
}
2.快速排序
function quickSort(arr,l,r){
  if(l < r){
    var i = l, j = r, x = arr[i];
    while(i<j){
      while(i<j && arr[j]>x)
        j--;
      if(i<j)
        //這裡用i++,被換過來的必然比x小,賦值後直接讓i自加,不用再比較,可以提高效率
        arr[i++] = arr[j];
      while(i<j && arr[i]<x)
        i++;
      if(i<j)
        //這裡用j--,被換過來的必然比x大,賦值後直接讓j自減,不用再比較,可以提高效率
        arr[j--] = arr[i];
    }
    arr[i] = x;
    quickSort(arr, l, i-1);
    quickSort(arr, i+1, r);
  }
}