# include <iostream>
using namespace std;
void my_qsort(int arr[], int, int);
int main()
{
int n;
cin>>n;
int *arr = new int[n];
for(int i = 0;i < n; ++i)
cin >> arr[i];
my_qsort(arr, 0, n - 1);
for(int i = 0; i < n; ++i)
cout << arr[i]<<" ";
cout<<endl;
}
void my_qsort(int arr[], int l, int r)
{
int i, j, p,mid;
i=l;
j=r;
mid=arr[(l+r)/2];
do
{
while(arr[i]<mid) i++;
while(arr[j]>mid) j--;
if(i<=j)
{
p=arr[i];
arr[i]=arr[j];
arr[j]=p;
i++;
j--;
}
} while(i<=j);
if(l<j) my_qsort(arr, l, j);
if(i<r) my_qsort(arr, i, r);
}
/*
* 1 6 4 2 3 mid = 4, i = 0, j = 4
* 1 3 4 2 6 mid = 4, i = 2, j = 3
* 1 3 2 4 6 mid = 4, i = 3, j = 2
* 1 3 2 mid = 1, i = 0, j = 2
* 1 2 3 mid = 1, i = 2, j = 1
* 4 6 ...
* result:
* 1 2 3 4 6
*/
快速排序算法实现
最新推荐文章于 2023-05-08 10:11:28 发布
692

被折叠的 条评论
为什么被折叠?



