본문 바로가기
반응형

개인공부/Algorithm(C, C++)12

QuickSort(퀵정렬), C, C++ Pivot을 기준으로 Pivot보다 작은 수는 왼쪽에, Pivot보다 큰 수는 오른쪽에 배치하여 정렬하는 기법이다. 이름처럼 매우 빠른 속도로 정렬한다. #include #include #define max 10 void QuickSort(int*, int, int); int Partition(int*, int, int); void QuickSort(int* a, int start, int end){ int index; if(start < end){ index = Partition(a, start, end); QuickSort(a, start, index-1); QuickSort(a, index+1, end); } else{ return ; } } int Partition(int* a, int start.. 2020. 1. 14.
MergeSort(합병정렬), C, C++ 데이터를 각각 낱개로 나눈 후 합치면서 정렬하는 알고리즘으로 속도면에서 빠르다. 주석은 내가 이해한대로, 해석한대로 달아보았고 추후에 이미지 설명이나 등등을 추가해볼 계획이다. #include #define MAX 6 void mergesort_divide(int*, int, int); void mergesort_conquer(int*, int, int, int); void mergesort_conqure(int a[], int start, int end, int mid_index){ //any array int b[1000]; //first index of left array int i = start; //first index of right array int j = mid_index + 1; //so.. 2020. 1. 14.
SelectionSort(선택정렬), C, C++ ※테스트 환경은 Dev C++에서 하였고 첨부파일도 Dev C++에서 만든 소스파일입니다. (소스 코드 테마 적용을 보려면 크롬말고 익스플로어로 열면 잘 적용됩니다.) selectionsort(선택정렬)은 전체 데이터 중 가장 작은 수를 선택하여 앞쪽으로 배치하여 정렬하는 방법이다. 따라서 가장 작은 수부터 정렬된다. //선택정렬, 가장 작은 수를 찾아 제일 앞쪽으로 배치 //평균 시간 복잡도는 O(n2) #include main(){ int a[] = {20, 40, 30, 50, 10}; int temp; for(int i = 0; i < 5; i++){ printf("%d ", a[i]); } for(int i = 0; i < 5; i++){ //min에 가장 작은 값이 들어가고 비교하기 위해 임의.. 2020. 1. 13.
BubbleSort(버블정렬), C, C++ ※테스트 환경은 Dev C++에서 하였고 첨부파일도 Dev C++에서 만든 소스파일입니다. (소스 코드 테마 적용을 보려면 크롬말고 익스플로어로 열면 잘 적용됩니다.) //크롬에서도 적용방법 아시는분 계시면 알려주세요... bubblesort(버블정렬)은 배열의 두 값들을 비교하면서 정렬하며 가장 큰 값이 먼저 정렬된다. //버블 정렬, 버블정렬은 가장 큰 수가 먼저 정렬된다. //평균 시간 복잡도는 O(n2) #include int main(){ int a[] = {20, 40, 50, 10, 30}; for(int i= 0; i 2020. 1. 13.
반응형