Language/C++ 25

Exchange, Insertion, Selection, Merge, Quick, Shell Sort Algorithms

본 글은 알고리즘 설계 과목에서 작성한 코드를 기반으로 한 글입니다. 💡 Exchange sort 정렬되지 않은 배열에서, Index 키와 나머지 키를 비교하여, 가장 작은 키를 인덱스 순차적으로 위치시키는 알고리즘 void exchangeSort(vector&arr) { int N = arr.size(); for(int i = 0; i < N - 1; i++) { for (int j = i + 1; < N - 1) { if (arr[j] < arr[i]) { swap(arr[i], arr[j]) } } } } 시간복잡도는 항상 모든 배열의 내용을 비교하므로 O(n^2)이며 배열 내 정렬이 일어나므로 공간 복잡도는 O(1)이다. 💡 Insertion sort 정렬되지 않은 배열에서 순차적으로 키를 선택해..

Language/C++ 2023.03.16

Let's measure time complexity by n^3 and 2^n

본 글은 알고리즘 설계 과목에서 작성한 코드를 기반으로 한 글입니다. 💡 Time Complexity 알고리즘을 실행하는 데 걸리는 시간을 의미합니다. Q1. n^3을 만족하는 2차 행렬 a, b, c의 곱셈을 기반으로 하는 3중 for loop를 작성하라. #include #include using namespace std; int main() { const int n[] = {10, 50, 100, 150, 200}; clock_t start, finish; double duration; for (int i = 0; i < 5; i++) { int N = n[i]; int a[N][N], b[N][N], c[N][N]; start = clock(); for (int i = 0; i < N; i++) ..

Language/C++ 2023.03.06