728x90
정렬 알고리즘 개요
졍렬(Sorting)이란 데이터를 특정 기준에 따라 순서대로 나열하는 것이며, 정렬 알고리즘으로 정렬 시 이진탐색이 가능해진다.
(이진탐색의 전처리과정)
많이 사용하는 정렬 알고리즘
선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬
선택 정렬
가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸기를 반복
매번 가장 작은 것을 '선택'
삽입 정렬
선택 정렬에 비해 구현 난이도 높으나 데이터가 거의 정렬되어 있을 때 효율적
특정한 데이터를 적정한 위치에 '삽입'
퀵 정렬
정렬 라이브러리의 근간, 기준 데이터 설정 후 비교해가며 위치 변경, 가장 많이 사용
피벗 사용, 데이터의 개수가 많을수록 선택,삽입 정렬에 비해 압도적으로 빠른 속도
이미 데이터가 정렬되어 있을 경우 느림
계수 정렬
특정한 조건이 부합할 때만 사용할 수 있지만 매우 빠른 정렬 알고리즘
데이터의 크기 범위가 제한되어 정수 형태로 표현할 수 있을 때만 사용 가능
계수 정렬 이용시 모든 범위를 담을 수 있는 크기의 리스트를 선언해야 하기 때문에 조건부 사용
비교 기반의 알고리즘이 아니며, 데이터를 하나씩 확인하며 데이터의 값과 동일한 인덱스의 데이터를 1씩 증가시키며 정렬
728x90
'○ 기술면접 > 알고리즘' 카테고리의 다른 글
| 사칙연산: 평균 (백준 1546) (0) | 2023.03.23 |
|---|---|
| 구현: 검증수 (백준 2475) (0) | 2023.03.23 |
| 구현: 상수 (백준 2908) (0) | 2023.03.23 |
| 구현: 음계 (백준 2920) (0) | 2023.03.23 |
| DFS: 섬의 개수 (백준 4963) (0) | 2023.03.22 |
| 구현: 단지번호붙이기 (백준 2667) (0) | 2023.03.22 |
| DFS: 바이러스 (백준 2606) (1) | 2023.03.22 |
| [알고리즘] DFS/BFS: 그래프 탐색 (0) | 2023.03.21 |