목록전체 글 (158)
Nagie's DevStory
선택 정렬(Selection Sort)은 리스트를 순회하면서 가장 작은 값을 찾아 리스트의 앞으로 옮기는 방식으로 동작한다. template void selection_sort(std::vector& data) { // O(n^2) int n = data.size(); for (int i = 0; i < (n - 1); i++) { int idx = i; for (int j = (i + 1); j < n; j++) { if (data[j] < data[idx]) { idx = j; } } std::swap(data[i], data[idx]); } } 특징 1. 간단한 구현 : 버블정렬과 같이 간단하게 구현할 수 있는 정렬 알고리즘이며, 반복문을 사용해 작은 값을 선택 후 앞으로 옮기는 방식으로 동작한다...
버블 정렬(Bubble Sort)은 리스트를 반복적으로 훑어가며 인접한 두 원소를 비교 후, 조건에 맞게 원소를 재배치해 정렬하는 알고리즘이다. 이 과정은 리스트가 정렬될 때까지 반복되며 더 작은 원소가 리스트의 위쪽으로 "거품처럼" 올라가는 모습에서 버블정렬이라고 이름을 지었다고 한다. template void bubble_sort(std::vector& data) { // O(n^2) int n = data.size(); for (int i = 0; i i; j--) { if (data[j] < data[j - 1]) { std::swap(data[j],data[j - 1]); } } } } 특징 1. 간단한 구현 : 버블..
하노이의 탑 (위키피디아) 하노이의 탑 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 하노이의 탑 하노이의 탑(Tower of Hanoi)은 퍼즐의 일종이다. 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기 ko.wikipedia.org 재귀 알고리즘의 대표적인 예시 중 하나인 하노이의 탑 문제다. 하노이의 탑 문제에서 원판이 이동하는 횟수는 2^n - 1(메르센 넘버) 이기에 시간 복잡도는 O(2^n)으로 볼 수 있으며 원판의 수가 많아질수록 계산시간이 오래 걸린다. void hanoi(int n, int from, int to, int by) { if (n == 1) { std::cout
순열 (위키피디아) 순열 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 3개의 서로 다른 공에 대한 총 6가지의 순열 루빅스 큐브의 면에 대한 회전은 그 면의 9개의 부분에 대한 한 가지 순열이다. 수학에서 순열(順列, 문화어: 차례무 ko.wikipedia.org 사전적인 의미는 굳이 내가 작성하는 것 보단 위키피디아를 참고하는 게 더 나을 거 같아 URL을 첨부한다. 아래는 재귀함수를 사용한 순열 생성 코드이다. template void print_vec(const std::vector& vec) { for (const auto& e : vec) { std::cout
C++에서 문자열을 뒤집는 방법은 여러 가지가 있다. 그중에서 간단하게 해결할 방법부터 설명하자면 다음과 같이 헤더에 있는 reverse()를 사용하는 방법이 있다. #include #include #include int main() { std::string str = "Hello"; // 문자열 뒤집기 std::reverse(str.begin(), str.end()); // 뒤집힌 문자열 출력 std::cout