js的幾種排序演算法
阿新 • • 發佈:2022-03-31
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); } }