quicksort
2012-02-09 22:07
176 查看
function partition(array, left, right, pivotIndex) pivotValue := array[pivotIndex] swap array[pivotIndex] and array[right] // Move pivot to end storeIndex := left for i from left to right - 1 // left ≤ i < right if array[i] < pivotValue swap array[i] and array[storeIndex] storeIndex := storeIndex + 1 swap array[storeIndex] and array[right] // Move pivot to its final place return storeIndex
function quicksort(array, left, right) if right > left // subarray of 0 or 1 elements already sorted select a pivotIndex in the range left ≤ pivotIndex ≤ right // see Choice of pivot for possible choices pivotNewIndex := partition(array, left, right, pivotIndex) // element at pivotNewIndex is now at its final position quicksort(array, left, pivotNewIndex - 1) // recursively sort elements on the left of pivotNewIndex quicksort(array, pivotNewIndex + 1, right) // recursively sort elements on the right of pivotNewIndex
相关文章推荐
- 快速排序(quicksort)
- QuickSort和MergeSort算法及其效率比较源代码
- Quicksort on a container
- 快速排序法(QuickSort)c++实现
- QUICKSORT 多余的一次swap
- poj 2299 Ultra-QuickSort
- 一个Quicksort究竟可以写到多么短
- quicksort
- POJ2299-Ultra-QuickSort
- 快速排序算法QuickSort
- 快速排序(Quicksort)的Javascript实现
- topk算法 -- heap,Quicksort
- POJ 2299 Ultra-QuickSort
- 一亿数据获取前100个最大值(基于最小堆和Quicksort)
- 快速排序(Quicksort)的Javascript实现
- POJ2299-Ultra-QuickSort
- QuickSort
- poj 2299 Ultra-QuickSort
- QuickSort 快速排序