본문 바로가기

ALGORITHM/자료구조, 알고리즘

(4)
Insertion Sort 이번에는 삽입 정렬이당 평균적인 시간 복잡도는 N 제곱이고 베스트 인 경우는 N 번이다, key 값을 뽑아 낸 다음 배열에서 key 이전의 key 보다 큰 값들은 key 값 보다 작은 값이 나올 때 까지 한 칸씩 앞으로 밀어서 key 보다 작은 값이 나올 때 그 앞에다가 key 값을 삽입 한다. 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 #include using namespace std; void insertion_sort(int * arr, int N){ int key = ..
Selection Sort 이번에는 선택 정렬( Selection_Sort ) 알고리즘 이다. 버블 정렬과 마찬가지로 N 제곱 시간 복잡도 알고리즘 이지만 swap 하는 횟수는 버블 정렬 보다 적기 때문에 버블 정렬 보다는 빠르다. 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 #include using namespace std; void swap(int & a, int & b){ // 인자를 레퍼런스로 받음 int c = a; a = b; b = c; } void selection_sort(in..
Bubble Sort 이번에 리뷰할 코드는 버블 정렬( Bubble Sort ) 알고리즘 코드이다. 구현하기는 간단한 정렬이지만 시간 복잡도 측면에서는 N제곱으로 효율적이지는 않은 정렬 알고리즘이다. 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 #include using namespace std; void swap(int & a, int & b){ // 인자를 레퍼런스로 받음 int c = a; a = b; b = c; } int main() { int * arr; // 동적으로 메모리를 할당할 포인터 변수 int N =..
이진 탐색 트리 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 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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109..