신기술

정렬 알고리즘

니엘개발자 2023. 12. 20. 14:09
반응형

코딩꿀팁: 정렬 알고리즘

1. 선택 정렬

선택 정렬은 배열에서 가장 작은 값을 찾아 처음 위치에 넣고, 그 다음으로 작은 값을 찾아 두 번째 위치에 넣는 과정을 반복하는 알고리즘입니다.

선택 정렬의 시간 복잡도는 O(n^2)입니다.

2. 삽입 정렬

삽입 정렬은 배열을 정렬된 부분과 정렬되지 않은 부분으로 나누고, 정렬되지 않은 부분의 가장 왼쪽 값을 정렬된 부분 사이에 삽입하는 과정을 반복하는 알고리즘입니다.

삽입 정렬의 시간 복잡도는 O(n^2)입니다.

3. 버블 정렬

버블 정렬은 인접한 두 개의 값을 비교하여 순서가 잘못되어 있다면 서로 교환하는 과정을 반복하는 알고리즘입니다.

버블 정렬의 시간 복잡도는 O(n^2)입니다.

4. 퀵 정렬

퀵 정렬은 분할 정복 알고리즘의 일종으로, 평균적으로 가장 빠른 정렬 알고리즘 중 하나입니다. 배열을 기준 값(피벗)을 기준으로 작은 값과 큰 값으로 분할하고, 각 부분 배열에 대해 재귀적으로 정렬합니다.

퀵 정렬의 평균 시간 복잡도는 O(n log n)입니다.

5. 합병 정렬

합병 정렬은 분할 정복 알고리즘의 일종으로, 배열을 반으로 나눈 뒤 병합하는 과정을 반복하는 알고리즘입니다. 배열을 작은 단위로 쪼갠 뒤 합병하면서 정렬하게 됩니다.

합병 정렬의 시간 복잡도는 O(n log n)입니다.

6. 힙 정렬

힙 정렬은 힙 자료구조를 이용한 정렬 알고리즘입니다. 배열을 힙으로 만든 뒤 최댓값(또는 최솟값)을 제거하여 정렬된 배열을 만드는 과정을 반복합니다.

힙 정렬의 시간 복잡도는 O(n log n)입니다.

7. 기수 정렬

기수 정렬은 자릿수를 기준으로 정렬하는 알고리즘입니다. 가장 작은 자릿수부터 가장 큰 자릿수까지 반복하며 정렬하여 최종적으로 정렬된 배열을 얻습니다.

기수 정렬의 시간 복잡도는 O(kn)입니다. (k는 자릿수의 개수)

반응형

'신기술' 카테고리의 다른 글

알고리즘 디자인 패턴  (0) 2023.12.20
검색 알고리즘  (0) 2023.12.20
자료 구조  (0) 2023.12.20
빅 오 표기법  (0) 2023.12.20
재귀 함수  (0) 2023.12.20