알고리즘/알고리즘 코드(3)
-
[C언어] 병합정렬 (Merge Sort) 소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 #include #include #define SIZE 10 void merge(int arr[], int start1, int end1, int start2, int end2) { // 앞 배열의 인덱스와 뒤 배열의 인덱스 int i = start1, j = start2; // 임시 배열 (정렬을 위한..
2020.04.12 -
[C언어] 퀵정렬 (Quick Sort) 소스 코드
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include #define SIZE 10 // 양쪽 값 변경 inline void swap(int *a, int *b){ int temp = *a; *a = *b; *b = temp;} // 퀵소트 함수 void quickSort(int arr[], int start, int end){ // 종료 조건 if(start >= end) return; // 피벗 (왼쪽 고정) int nPivot = arr[start]; int i = start, j = end; while(i
2020.04.12 -
[C언어] 에라토스테네스의 체 함수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include // sqrt 함수 사용을 위한 include #define MAX_PRIME_NUMBER 100000 // 원하는 숫자로 변경 가능 unsigned int g_arrEratos[MAX_PRIME_NUMBER + 1] = {0, }; void fnEratos(unsigned int nLastElement) { unsigned int nEratosLastElement = (int)sqrt(nLastElement) + 1; // 숫자 1 은 소수가 아님 g_arrEratos[1] = 1; for(unsigned int i = 2; i
2020.04.11