번개애비의 라이프스톼일

퀵정렬과 삽입정렬을 이용하여 Sorting하기 (C언어) 본문

IT

퀵정렬과 삽입정렬을 이용하여 Sorting하기 (C언어)

번개애비 2017. 3. 30. 20:59

#include <stdio.h>

void select(int A[], int n) {

int temp, i, j;

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

temp = A[i];

for(j=i; j>0; j--){

if(A[j-1]>temp){

A[j] = A[j-1];

if(j==1){

A[j-1]=temp;

break;

}

}else{

A[j]=temp;

break;

}

}

}

}

int quicksort(int A[], int n) {

int lft, rgt;

if(n<2){

return 0;

}

lft = 0;

rgt = n - 1;

char pit = A[lft];

while(lft<rgt){

while((A[rgt]>=pit) && (lft<rgt)){

rgt--;

A[lft] = A[rgt];

}

while((A[lft]<=pit) && (lft<rgt)){

lft++;

A[rgt] = A[lft];

}

}

A[lft] = pit;

quicksort(A,lft);

quicksort(A+lft+1, n-lft-1);

}

int main(void) {

int DataSet[] = { 12, 70, 30, 20, 55, 25, 40, 50 };

int Length = sizeof DataSet / sizeof DataSet[0];

int i = 0;

printf("Sorting 하기 전 : ");

for (i = 0; i < Length; i++) {

printf("%d ", DataSet[i]);

}

printf("\n");

select(DataSet,Length);

printf("Select Sorting 한 이후 : ");

for (i = 0; i < Length; i++) {

printf("%d ", DataSet[i]);

}

printf("\n");

quicksort(DataSet,Length);

printf("Quick Sorting 한 이후 : ");

for (i = 0; i < Length; i++) {

printf("%d ", DataSet[i]);

}

printf("\n");

}




실행결과 :





Comments