快速排序

来源:互联网 发布:淘宝几百块发省级期刊 编辑:程序博客网 时间:2024/06/05 09:08

算法导论:快速排序实现

#include<iostream>#include<vector>using namespace std;//返回主元int partition(vector<int>&A, int p, int r){int x = A[r];int i = p - 1;for (int j = p; j <= r - 1; ++j){if (A[j] <= x){i = i + 1;std::swap(A[i], A[j]);}}std::swap(A[i + 1], A[r]);return i + 1;}void quicksort(vector<int>&A, int p, int r){if (p < r){int q = partition(A, p, r);quicksort(A, p, q - 1);quicksort(A, q + 1, r);}}int main(){vector<int>A;int num;while (cin >> num){A.push_back(num);}quicksort(A, 0, A.size() - 1);for (int i = 0; i < A.size(); ++i)cout << A[i] << ends;cout << endl;return 0;}


0 0
原创粉丝点击