번개애비의 라이프스톼일
퀵정렬과 삽입정렬을 이용하여 Sorting하기 (C언어) 본문
#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");
}
실행결과 :
'IT' 카테고리의 다른 글
Windows Server 2016 인텔 NUC - NUC7i7BNH의 네트워크 드라이버 잡기 (0) | 2019.05.07 |
---|---|
힙정렬(Heap sort)과 계수정렬(Counting sort)을 C로 짜보기 (0) | 2017.04.13 |
C언어 - 버블정렬을 이용하여 내림차순으로 정렬하기 (0) | 2017.03.22 |
문자의 짝수와 홀수를 X로 치환하는 함수 (C) (0) | 2016.12.07 |
cpp 입출력 파일처리 예제 (0) | 2016.11.17 |