#include <stdio.h>
#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;
int part(int* r, int low, int high)
{
int i = low, j = high, pivot = r[low];
while (i < j)
{
while (i<j && r[j]>pivot)
{
j--;
}
if (i < j)
{
swap(r[i++], r[j]);
}
while (i < j && r[i] <= pivot)
{
i++;
}
if (i < j)
{
swap(r[i], r[j--]);
}
}
return i;
}
void Quicksort(int* r, int low, int hight)
{
int mid;
if (low < hight)
{
mid = part(r, low, hight);
Quicksort(r, low, mid - 1);
Quicksort(r, mid+1, hight);
}
}
int main()
{
int a[100006];
int N;
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> a[i];
}
Quicksort(a, 0, N - 1);
for (int i = 0; i < N; i++)
{
cout << a[i] << " ";
}
cout << endl;
return 0;
}
递归:快速排序
最新推荐文章于 2024-05-21 19:48:43 发布