Zzong's Notes

Home

❯

algorithms

❯

sorting

sorting

2026년 8월 29일1 min read

  • Insertion Sort
  • Selection Sort
  • Merge Sort
  • Bubble Sort
  • quick Sort
  • Heap Sort

링크된 언급

1
string

sorting 사용

함께 보면 좋은 글

Selection Sort

선택 정렬은 다음과 같은 순서로 이루어진다. 주어진 리스트 중에 최소값을 찾는다. 그 값을 맨 앞에 위치한 값과 교체한다. 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다. 하나의 원소만 남을 때까지 위의 과정을 반복한다.

Insertion Sort

삽입 정렬은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.

quick Sort

합병 정렬 (merge sort) 과 달리 퀵 정렬은 리스트를 비균등하게 분할한다. 분할 정복 (divide and conquer) 방법 문제를 작은 2 개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. 장점 속도가 빠르다.

string

두 String 이 주어질 경우 문제 (anagram) 인지 확인하기 예시) cat, tac 가 주어질 때, tac 를 잘 나열하면 cat 이 되므로 True 이 문제는 두 가지 방법으로 풀 수 있었음 Counter 사용 두 개의 Counter 가 서로 동일하면 True 만약 하나의 Counter 만 사용할 수...

Tree Traversal

Inorder Search preorder Search postorder Search .

Heap Sort

Max Heap 이나 min Heap 을 구성해 정렬하는 방법 내림차순 정렬: max Heap 오름차순 정렬: min Heap 장점 Heap Sort 는 전체 자료를 정렬하는 것이 아니라 가장 큰 값 몇 개만 필요할 때 자주 사용된다.

Merge Sort

분할 단계와 병합 단계로 나뉘는 divide and conquer 알고리즘 시간 복잡도: O(nlog(n)) 공간 복잡도: O(n) (병합 단계에서 사용) 코드 def mergeSort(arr, l, r): if l < r: Same as (l+r)//2, but avoids overflow for...

stack

스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조 (LIFO - Last In First Out) 으로 되어 있다.

time complexity

입력 크기가 커질 때 알고리즘의 실행 시간이 어떤 비율로 늘어나는지를 나타낸 것이다. 초 단위 실행 시간은 기계와 언어에 따라 달라지므로, 대신 기본 연산이 몇 번 일어나는지를 입력 크기 n 의 함수로 센다. 표기 가장 많이 쓰는 것은 big-O 다.

Bubble Sort

장점 구현이 매우 간단하다. 단점 하나의 요소가 가장 왼쪽에서 가장 오른쪽으로 이동하기 위해서는 배열에서 모든 다른 요소들과 교환되어야 한다. Bubble Sort 는 원소 간 비교도 문제이지만 swap 이 빈번하게 발생하므로 비효율적이다.