#include <bits/stdc++.h>
#define N 1000
using namespace std;
int QuickSort_partition(int arr[], int left, int right)
{
int x = arr[left];
while(left < right)
{
while(right > left && arr[right] >= x)
{
right--;
}
if(left < right)
{
arr[left] = arr[right];
left++;
}
while(right > left && arr[left] < x)
{
left++;
}
if(left < right)
{
arr[right] = arr[left];
right--;
}
}
arr[left] = x;
return left;
}
void QuickSort(int arr[], int pos_start, int pos_stop)
{
if(pos_start < pos_stop)
{
int partition_pos = QuickSort_partition(arr,pos_start,pos_stop);
QuickSort(arr,pos_start,partition_pos - 1);
QuickSort(arr,partition_pos + 1,pos_stop);
}
}
int main()
{
int arr[N];
int n;
cin>>n;
for(int i = 0; i < n; i++)
cin>>arr[i];
QuickSort(arr, 0, n - 1);
for(int i = 0; i < n; i++)
cout<<arr[i]<<' ';
return 0;
}
快速排序模板
最新推荐文章于 2025-04-15 17:42:07 发布