//快速排序算法
#include <iostream>
using namespace std;
int Partition(int a[],int p,int r);
void QuickSort(int a[],int p,int r);
int main()
{
 int case_num;
 cin>>case_num;
 for(int i=0;i<case_num;i++)
 {
  int num;
  cin>>num;
        int *p=new int[num];
  for(int j=0;j<num;j++)
  {
   cin>>p[j];
  }
  QuickSort(p,0,num-1);
  //注意在输出时最后一个不要多输出空格,否则会出现格式错误
  for(int n=0;n<num;n++)
  {
   if(n == num-1)
    cout<<p[n]<<endl;
   else
    cout<<p[n]<<" ";
  }
  delete []p;
 }
}
void QuickSort(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 Partition(int a[],int p,int r)
{
 int i=p;
 int j=r+1;
 int x=a[p];
 while(true)
 {
  while(a[++i]<x && i<r);
  while(a[--j]>x);
  if(i>=j) break;
  int temp = a[i];
  a[i] = a[j];
  a[j] = temp;
 }
 a[p] = a[j];
 a[j] = x;
 return j;
}

相关文章:

  • 2021-06-26
  • 2021-08-24
  • 2022-12-23
  • 2021-06-03
  • 2021-12-19
  • 2021-12-01
  • 2021-07-25
  • 2021-12-25
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-22
相关资源
相似解决方案