快速排序 降序

来源:互联网 发布:建筑平面图制作软件 编辑:程序博客网 时间:2024/05/16 14:51
#include <iostream>  #include <random>  using namespace std;    uniform_int_distribution<unsigned> u(0,9);  default_random_engine e;    int PARTITION(int *A, int p, int r)  {      int i = p - 1;      int key = A[r];        for (int j = p; j <= r - 1; ++j)      {          if (A[j] >=  key)          {              ++i;              swap(A[i], A[j]);          }      }      swap(A[r], A[i+1]);        return i+1;  }    int RANDOMIZED_PARTITION(int *A, int p, int r)  {      int random = p + u(e)%(r-p+1);      swap(A[random], A[r]);        return PARTITION(A, p, r);  }    int RANDOMIZED_QUICKSORT(int *A, int p, int r)  {      if (p < r)      {          int q = RANDOMIZED_PARTITION(A, p, r);          RANDOMIZED_QUICKSORT(A, p, q-1);          RANDOMIZED_QUICKSORT(A, q+1, r);      }        return 0;  }    int main()  {      int A[] = {9,8,7,6,5,4,3,2,1,0};        RANDOMIZED_QUICKSORT(A, 0, 9);        for (auto &a : A)      {          cout << a;      }        return 0;  }  

0 0