快速排序&易错点

来源:互联网 发布:怎样在淘宝上卖手机 编辑:程序博客网 时间:2024/06/06 12:26
</pre><pre name="code" class="cpp">
#include <iostream>using namespace std;int partition(int* arr, int p, int q){int pivot = arr[p];while (p < q) // while中统一使用p < q 而不是p <= q{while(pivot <= arr[q] && p < q)q--;arr[p] = arr[q];while(pivot >= arr[p] && p < q)p++;arr[q] = arr[p];}arr[p] = pivot;//记住把pivot归位return p;}void quick_sort(int* arr, int start, int end){if(start >= end) return; //递归出口int pos = partition(arr, start, end);quick_sort(arr, start, pos - 1);quick_sort(arr, pos + 1, end);}int main(){int arr[] = { 3, 5, 6 ,8, 2, 1, 9, 4, 0, 7};quick_sort(arr, 0, 9);for(int i = 0; i < 10; i++){cout << arr[i] << " ";}system("PAUSE");}


别人的快排


0 0
原创粉丝点击