CS - Roadmap.sh/3. Common Algorithms(32)
-
3.2. Recursion - 3.2.2 Non-Tail Recursion
CS - 3. Common Algorithms - 3.2. Recursion - 3.2.2 Non-Tail Recursion 💡Tail recursion is when a function can directly return the result of a recursive call - there are no outstanding operations, and there is no need for the call stack frame to be preserved. So it can be translated to a “goto with arguments”, and the stack usage will be constant. In “non-tail recursion”, there are outstanding ope..
2024.01.22 -
3.2. Recursion - 3.2.1 Tail Recursion
CS - 3. Common Algorithms - 3.2. Recursion - 3.2.1. Tail Recursion 3.2 Recursion 💡 Recursion is a method of solving problems where the solution depends on solutions to smaller instances of the same problem. A recursive algorithm must have a base case. A recursive algorithm calls itself, recursively. 재귀는 동일한 문제의 작은 인스턴스에 대한 해결책에 따라 해결책이 달라지는 문제를 해결하는 방법입니다. 재귀 알고리즘에는 기본 사례가 있어야 합니다. 재귀 알고리즘은 스스로를..
2024.01.21 -
3.1. Sorting - 3.1.6 Merge Sort
CS - 3. Common Algorithms - 3.1. Sorting - 3.1.6 Merge Sort 💡Merge sort is a divide and conquer algorithm. It divides the input array into two halves, calls itself for the two halves, and then merges the two sorted halves. The merge() function is used for merging two halves. The merge(arr, l, m, r) is key process that assumes that arr[l..m] and arr[m+1..r] are sorted and merges the two sorted su..
2024.01.20 -
3.1 Sorting - 3.1.5 Quick Sort
CS - 3. Common Algorithms - 3.1. Sorting - 3.1.5 Quick Sort 💡Quick Sort is a divide and conquer algorithm. It picks an element as pivot and partitions the given array around the picked pivot. There are many different versions of quickSort that pick pivot in different ways. 퀵 정렬은 분할 및 정복 알고리즘입니다. 이 알고리즘은 요소를 피벗으로 선택하고 선택된 피벗을 중심으로 주어진 배열을 분할합니다. 다양한 방식으로 피벗을 선택하는 여러 가지 버전의 퀵 정렬이 있습니다. 퀵정렬(Quick S..
2024.01.16 -
3.1 Sorting - 3.1.4 Heap Sort
CS - 3. Common Algorithms - 3.1. Sorting - 3.1.4 Heap Sort 💡Heap sort is a comparison based sorting algorithm. It is similar to selection sort where we first find the maximum element and place the maximum element at the end. We repeat the same process for remaining element. 힙 정렬은 비교 기반 정렬 알고리즘입니다. 먼저 최대 요소를 찾은 다음 최대 요소를 마지막에 배치하는 선택 정렬과 유사합니다. 나머지 요소에 대해서도 동일한 과정을 반복합니다. 앞에서 데이터의 양이 많거나 무작위로 배열된..
2024.01.15 -
3.1. Sorting - 3.1.3 Insertion Sort
CS - 3. Common Algorithms - 3.1. Sorting - 3.1.3 Insertion Sort 💡Insertion sort is a simple sorting algorithm that builds the final sorted array one item at a time by comparisons. It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort. 삽입 정렬은 비교를 통해 한 번에 한 항목씩 최종 정렬된 배열을 구축하는 간단한 정렬 알고리즘입니다. 퀵 정렬, 힙 정렬 또는 병합 정렬과 같은 고급 알고리즘에 비해 큰 목록에서는 효율..
2024.01.15