来一波快速排序大法~~~
#include <cstdio>
using namespace std;
#define MAX_NUM 100
int data[MAX_NUM];
int sort(int start ,int end)
{
int num = data[start];
while(start<end)
{
while( start<end && data[end] >= num) end--;
if(start<end)
{
data[start] = data[end];
start++;
}
while( start<end && data[start] <= num)start++;
if(start<end)
{
data[end] = data[start];
end--;
}
}
data[start] = num;
return start ;
}
//来一波快排
void quick_sort(int start , int end)
{
int i ;
for( i = start ; i<=end ; i++)
{
printf("%d " , data[i]);
}
printf("\n");
if(start<end)
{
int mid = sort(start , end);
quick_sort(start , mid-1);
quick_sort(mid+1 , end);
}
}
int main(void)
{
int N ;
int i ;
#ifdef DEBUG
freopen("input.txt" , "r" ,stdin);
freopen("output.txt" , "w" , stdout);
#endif
scanf("%d" , &N);
for( i = 0 ; i<N ; i++)
{
scanf("%d" , &data[i]);
}
quick_sort(0, N-1);
for( i = 0 ; i<N ; i++)
{
printf("%d " ,data[i]);
}
printf("\n");
return 0 ;
}