自己写的qsort 的极简源代码 。
#include <iostream>
using namespace std;
template<class T>
void qsort(int left , int right,T *arr); //可以对常见的数据类型排序 , 复杂度是 n*log(n)
int main()
{
char arr[100] ;int n;
while(cin>>n)
{
for(int i=1; i<=n; i++)
cin>>arr[i];
qsort(1,n,arr);
for(int i=1; i<=n; i++)
cout<<arr[i]<<" ";
cout<<endl;
}
return 0;
}
template<class T>
void qsort(int left , int right,T *arr)
{
if(left >= right)
return ;
T temp = arr[left];
int l = left , r = right;
while(left < right)
{
while(left < right && arr[right] > temp)
right--;
if(right > left)
arr[left++] = arr[right];
while(left < right && arr[left] < temp)
left++;
if(right > left)
arr[right--] = arr[left++];
}
arr[left] = temp;
qsort(l,left,arr);
qsort(left+1,r,arr);
}