반응형

자료구조 5

C++ 순열(permutation) - 대학교 컴공 2학년 자료구조 과목

순열이란 무엇인가 순열 P. 우리 고등학교 확통시간에 다 배웠죠? 기억나죠? 하지만 저도 내용은 기억 안나고 그저 배웠다는 사실만 기억나는 타입이기 때문에 이러고 퉁치고 넘어갈 생각은 없습니다. 순열이란, 서로다른 배열요소를 순서를 고려하여 배열하는 경우입니다. 예를들어 nPr 이라고 하면, n개의 배열요소 중에 r개를 뽑아 순서를 고려하여 배열하는 경우의 수입니다. 수업에 나온 코드 예시 void Permutations(char* a, const int k, const int m) { int i; if (k == m) { for (i = 0; i

data lab 2023.10.25

C++ 재귀 이진 검색 (Recursive binary search) - 대학교 컴공 2학년 자료구조 과목

재귀 이진 검색이란 무엇인가 2023.10.23 - [코딩 data lab] - 이진 검색(binary search)이란 무엇일까? - 대학교 컴공 2학년 자료구조 과목 재귀 이진 검색은, 전 게시물에서 다루었던 이진 검색을 재귀함수의 형식으로 구현할 수 있도록 만든 알고리즘이다. 수업에 나온 예시코드 int rbs(int* a, const int x, const int left, const int right) { if (left a[middle]) return rbs(a, x, middle + 1, right); else return middle; } return -1; } 코드 분석 구하고자 하는 x의 값이 a[middle]보다 작을 경우에는 right의 값을 middle-1 로 변경하여 다음에 시행..

data lab 2023.10.24

C++ 이진 검색(binary search)이란 무엇일까? - 대학교 컴공 2학년 자료구조 과목

이진 검색 (binary search)란 무엇인가정렬되어 있는 배열 내에서 원하는 배열 요소를 찾아내기 위한 알고리즘으로, (오름차순일 경우) 배열을 절반으로 나누고 그 절반 값이 찾는 배열요소보다 크면 왼쪽의 토막으로 가고 찾는 배열요소의 값이 더 크면 오른쪽 토막으로 간다. 그러고 앞의 과정을 반복해 원하는 값을 찾아낸다. 이진검색의 장점선형검색, 즉 맨 앞에서부터 찾는 값이 나올 때까지 찾는 것보다 시간 복잡도가 낮아진다. 시간이 훨씬 단축된다는 것이다. 사전에서 단어를 찾을 때를 비유로 종종 들곤 하는데, 내가 '호루라기'라는 단어를 찾고 싶을 때, 맨 앞에서부터 찾으면 한세월 걸리겠지만 위와 같이 반씩 턱턱 피면서 대조하고, 다시 반절을 피고 하는 식으로 찾으면 얼마나 시간이 단축될지 체감이 될..

data lab 2023.10.23

C++ 선택정렬 (selection sort)이란 무엇일까? - 대학교 컴공 2학년 자료구조 과목

이 내용은 컴퓨터공학과인 내가 2학년 때 자료구조 과목에서 배우는 내용이다. 고3 때도 배운 적 있는 거 같긴 하다. 막 버블정렬 이런 거 배우면서. 그만큼 기초적인 내용이라는 거겠지? 아아~ 난 퇴화했다~ 아무튼 시작해 보겠다. SelectionSort - 선택정렬의 정의선택정렬이란 무엇일까? 주어진 배열을 맨 앞부터 쭉 읽어나가 최솟값을 찾아 맨 앞의 배열요소에 위치시키고, 두 번째부터 쭉 읽어나가 읽은 배열요소 중 최솟값을 두 번째에 위치시키고, 세 번째부터 쭉 읽어나가... 를 반복해, 배열요소를 오름차순으로 정렬해 주는 알고리즘이다. 바로 코드로 가보겠다.수업 때 나온 선택정렬의 예시코드void SelectionSort(int* a, const int n) { for (int i = 0; i <..

data lab 2023.10.22
반응형