티스토리 뷰
반응형
개발자의 C언어 독학 기초 # 응용 / 퀵정렬
모든 강의 자료 : www.codingnow.co.kr/
퀵 정렬
#include <stdio.h>
#include <windows.h> //system 명령 실행을 위해
//퀵정렬
//define으로 함수를 설정할 수 있다. (SWAP 함수 설정)
#define SWAP(x,y,t) ((t)=(x), (x)=(y), (y)=(t))
int partition(int var[], int left, int right)
{
int pivot=var[left];
int tmp;
int low=left;
int high=right+1;
do{
do{
low++;
}while(low<=right && var[low]<pivot);
do{
high--;
}while(high>=left && var[high]>pivot);
if(low<high){
SWAP(var[low], var[high], tmp);
}
}while(low<high);
SWAP(var[left], var[high], tmp);
return high;
}
void QuickSort(int var[], int left, int right)
{
if(left<right)
{
int q=partition(var, left, right);
QuickSort(var, left, q-1);
QuickSort(var, q+1, right);
}
}
void main(void)
{
system("chcp 65001"); //gcc 한글 깨짐
system("cls"); //화면지움
int TargetArr[10] = { 7, 2, 3, 5, 4, 8, 6, 9, 10, 1 };
//정렬하기전 값 출력
printf("\n정렬 전 : ");
for (int i = 0; i < 10; i++)
{
printf("%d ", TargetArr[i]);
}
QuickSort(TargetArr, 0, 10);//정렬 함수 호출
printf("\n\n");
printf("정렬 후 : ");
for (int i = 0; i < 10; i++)
{
printf("%d ", TargetArr[i]);
}
printf("\n\n");
return;
}
반응형
'C언어 강의' 카테고리의 다른 글
개발자의 C언어 독학 기초 # 응용 / 2진탐색 (0) | 2020.04.14 |
---|---|
개발자의 C언어 독학 기초 # 기본 연산 (0) | 2020.04.14 |
개발자의 C언어 독학 기초 # 응용 / 선택정렬 (0) | 2020.04.14 |
개발자의 C언어 독학 기초 # 응용 / 삽입정렬 (0) | 2020.04.14 |
개발자의 C언어 독학 기초 # 응용편 / 버블정렬 bubble sort (0) | 2020.04.14 |