나는 내 기억력을 믿지 않는다

[기술 면접 예상] 정렬 알고리즘과 사용 이유 및 예시

박도치 2024. 2. 13. 21:29

정렬알고리즘은 게임 오브젝트를 처리하거나 게임 내 요소를 정렬할 때 사용된다. 게임 화면에 다양한 오브젝트를 그리거나 사용자의 입력을 처리하거나 충돌을 검사할 때 등 사용될 수 있다.

정렬알고리즘의 예시 중 버블정렬은 가까운 두 원소를 비교하여 순서가 잘못되어있으면 서로 교환하는 방식으로 동작하며 시간복잡도는 O(n^) 이다. 작은 크기의 리스트에서는 효율적일 수 있으나 큰 크기의 리스트에서는 성능이 떨어진다.

삽입정렬은 리스트를 순차적으로 탐색하면서 각각의 원소를 적절한 위치에 삽입하는 것을 말한다. 마찬가지로 O(n^) 이지만 버블정렬보다 좀 더 효율적이다.

병합정렬은 리스트를 반으로 나눈 후 각각을 정렬하여 합병하는 형식이다. 시간복잡도는 O(n log n )으로 효율적인 정렬 중 하나이다.

퀵 정렬은 피벗을 기준으로 리스트를 분할하여 정렬하는 방식이다. 평균적으로 O(n log n)이지만 최악의 경우 O(n^) 이 될 수 있다.

힙 정렬은 말 그대로 힙 자료구조를 사용하여 정렬하는 방식이다. 시간 복잡도는 O(n log n)이며 추가적인 메모리를 사용하지 않는 장점이 있다.

이 중 퀵 정렬이 널리 사용되며 이유는 평균적으로 성능이 뛰어나기 때문이며 상황에 따라 다른 알고리즘도 사용될 수 있다.