1. Sort
- Bubble
- 간단한 정렬 알고리즘 중 하나 입니다
- 배열의 인접한 숫자를 비교하여 작은 숫자를 맨 앞으로 보내는 방식으로 정렬을 말합니다
- 배열의 맨 끝까지 반복하며, 한 번의 반복마다 배열의 맨 앞쪽부터 맨 끝까지 인접한 숫자를 비교하여 작은 숫자를 맨 앞으로 보냅니다
- [단점]
- 배열의 크기가 작을 때는 효율적이지만, 배열의 크기가 커질수록 효율이 떨어집니다
- Selection
- 정렬 알고리즘의 한 종류로, 배열의 원소 중 최소값을 찾아 맨 앞으로 보내는 과정을 반복하여 정렬하는 방법입니다
- 선택 정렬의 시간 복잡도는 O(n^2)입니다
- [구현]
- 배열의 첫 번째 원소를 최소값으로 지정합니다
- 배열의 두 번째 원소부터 마지막 원소까지를 순회하며, 현재 원소가 최소값보다 작으면 최소값을 현재 원소로 교체합니다
- 2번의 과정을 배열의 마지막 원소까지 반복합니다
- [단점]
- 단순하고 이해하기 쉬운 알고리즘이지만, 시간 복잡도가 O(n^2)이기 때문에 대규모 배열의 정렬에는 적합하지 않습니다
- 빅오 표기법
- [설명]
- 알고리즘의 시간 복잡도를 나타내는 수학적 표기법입니다
- 알고리즘의 입력 크기가 커짐에 따라 알고리즘의 실행 시간이 어떻게 증가하는지 나타냅니다
- O(n), O(n log n), O(n^2), O(n^3), O(2^n), O(n!) 등과 같은 다양한 표기법으로 나타낼 수 있습니다
- [표기법]
- O(n)
- 입력 크기가 n이 될 때 알고리즘의 실행 시간이 n에 비례하는 경우 입니다
- O(n log n)
- 입력 크기가 n이 될 때 알고리즘의 실행 시간이 n log n에 비례하는 경우 입니다
- O(n^2)
- 입력 크기가 n이 될 때 알고리즘의 실행 시간이 n^2에 비례하는 경우 입니다
- O(n^3)
- 입력 크기가 n이 될 때 알고리즘의 실행 시간이 n^3에 비례하는 경우 입니다
- O(2^n)
- 입력 크기가 n이 될 때 알고리즘의 실행 시간이 2^n에 비례하는 경우 입니다
- O(n!)
- 입력 크기가 n이 될 때 알고리즘의 실행 시간이 n!에 비례하는 경우 입니다
- Counting
- 특정 범위 내의 값을 정렬하는 데 사용되는 정렬 알고리즘 입니다
- 값의 범위가 작을 때 효율적입니다
- 알고리즘의 효율성을 비교하는 데 사용됩니다
- [구현]
- 각 값의 빈도를 계산합니다
- 빈도를 사용하여 정렬된 배열을 생성합니다
- [단점]
- 값의 범위가 작을 때 효율적이지만, 값의 범위가 클 경우 효율적이지 않습니다