#include<iostream>
using namespace std;
int a[1000], n;//设置全局变量,子函数需要
void quicksort(int left, int right)
{
if (left > right)
return ;
int i, j, temp, t;
temp = a[left];//设置基准数
j = right;
i = left;
while (i != j)
{
while (a[j] >= temp && i < j)//顺序应当从右往左
j--;
while (a[i] <= temp && i < j)//从左寻找第一个大于基准数的数
i++;
if (i < j)//左右交换
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
a[left] = a[i];
a[i] = temp;//基准数换位
quicksort(left, i - 1);//递归
quicksort(i + 1, right);
return ;
}
int main()
{
scanf_s("%d", &n);//输入数组长度
int i, j;
for (i = 1; i <= n; i++)
scanf_s("%d", &a[i]);
quicksort(1, n);
for (j = 1; j <= n; j++)
cout << a[j];
system("pause");
}
快速排序算法
最新推荐文章于 2024-07-18 22:30:07 发布