IT

퀵소트

kio467 2014. 6. 9. 11:17

#include<stdio.h>

#include<stdlib.h>


#define MAX_SIZE 100001



void SWAP(int *a, int *b){

int temp;


temp=*a;

*a=*b;

*b=temp;

}


void quicksort(int a[], int left, int right)

{

int pivot,i,j;


if(left<right){

i=left; 

j=right+1;

pivot = a[(left+right-1)/2];


do{

do i++; while (a[i] <pivot );

do j--; while (a[j] >pivot);

if(i<j) SWAP(&a[i], &a[j]);

} while(i<j);


SWAP(&a[left], &a[j]);

quicksort(a, left, j-1);

quicksort(a, j+1, right);

}

}


void main(){

int a[MAX_SIZE];

int i,n;


scanf("%d" , &n);


for(i=1; i<=n; i++)

{

a[i] = n-i;

}

/*

for(i=1; i<=n; i++)

{

printf("%d\t", a[i]);

}

*/

quicksort(a, 1 , n);

printf("\n");


for(i=1; i<=n; i++)

{

printf("%d\t", a[i]);

}


}