//등호 부등호는 너무헷갈린다
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int a[1000000];
inline int swap(int *a, int * b){
int temp = *a;
*a = *b;
*b = temp;
}
int partition(int start, int last){
int l = start;
int r = last - 1;
int pivot = a[start];
while(l < r){
for(; a[l] <= pivot && l < last ; l++);
for(; a[r] > pivot ; r--);
if(l < r){
swap(&a[l],&a[r]);
}
}
swap(&a[start],&a[r]);
return r;
}
void quicksort(int l,int r){
if(l<r){
int a = partition(l,r);
quicksort(l, a);
quicksort(a + 1 , r);
}
}
int main(){
srand (time(NULL));
for(int i=0;i<1000;i++){
a[i] = rand() % 1000;
}
quicksort(0,1000);
for(int i=0;i<1000;i++){
if(i>0 && a[i-1] > a[i]) printf("error!
");
printf("%d ",a[i]);
}
printf("
");
}