常見的內部排序算法有:插入排序、
希爾排序、
選擇排序、冒泡排序、
歸併排序、快速排序、堆排序、基數排序等。這裏主要介紹
快速排序
。
一圖勝千言:算法
快速排序因爲排序效率在同爲O(N*logN)的幾種排序方法中效率較高,所以常常被採用,再加上快速排序思想----分治法也確實實用。快速排序是一種既不浪費空間又能夠快一點的排序算法。segmentfault
var quickSort = function(arr) { if (arr.length <= 1) { return arr; } var pivotIndex = Math.floor(arr.length / 2); //基準位置(理論上可任意選取) var pivot = arr.splice(pivotIndex, 1)[0]; //基準數 var left = []; var right = []; for (var i = 0; i < arr.length; i++){ if (arr[i] < pivot) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat([pivot], quickSort(right)); //連接左數組、基準數構成的數組、右數組 };