정렬알고리즘은 게임 오브젝트를 처리하거나 게임 내 요소를 정렬할 때 사용된다. 게임 화면에 다양한 오브젝트를 그리거나 사용자의 입력을 처리하거나 충돌을 검사할 때 등 사용될 수 있다.
정렬알고리즘의 예시 중 버블정렬은 가까운 두 원소를 비교하여 순서가 잘못되어있으면 서로 교환하는 방식으로 동작하며 시간복잡도는 O(n^) 이다. 작은 크기의 리스트에서는 효율적일 수 있으나 큰 크기의 리스트에서는 성능이 떨어진다.
삽입정렬은 리스트를 순차적으로 탐색하면서 각각의 원소를 적절한 위치에 삽입하는 것을 말한다. 마찬가지로 O(n^) 이지만 버블정렬보다 좀 더 효율적이다.
병합정렬은 리스트를 반으로 나눈 후 각각을 정렬하여 합병하는 형식이다. 시간복잡도는 O(n log n )으로 효율적인 정렬 중 하나이다.
퀵 정렬은 피벗을 기준으로 리스트를 분할하여 정렬하는 방식이다. 평균적으로 O(n log n)이지만 최악의 경우 O(n^) 이 될 수 있다.
힙 정렬은 말 그대로 힙 자료구조를 사용하여 정렬하는 방식이다. 시간 복잡도는 O(n log n)이며 추가적인 메모리를 사용하지 않는 장점이 있다.
이 중 퀵 정렬이 널리 사용되며 이유는 평균적으로 성능이 뛰어나기 때문이며 상황에 따라 다른 알고리즘도 사용될 수 있다.
'나는 내 기억력을 믿지 않는다' 카테고리의 다른 글
[기술 면접] 선택 정렬과 버블 정렬 (0) | 2024.02.27 |
---|---|
[기술] 힙과 스택, 박싱과 언박싱, SOLID원칙 (0) | 2024.02.21 |
람다식이란 (1) | 2024.02.06 |
delegate, event, action, func간의 차이 (0) | 2024.02.05 |
델리게이트 의 개념 (0) | 2024.02.02 |