왜 정렬 알고리즘을 알아야 할까?

정렬은 알고리즘 문제 풀이시에 가장 자주, 자연스럽게 등장합니다. 단순히 데이터를 순서대로 정렬하는 것처럼 보일 수 있지만, 다양한 알고리즘의 기반이 되기도 합니다. 사실 정렬이 필요 없는 문제보다 정렬이 필요한 문제가 더 많을 것입니다.

sort() 메소드를 사용해서 정렬하면 되지! 라고 쉽게 생각했지만, 코딩테스트나 면접에서 중요한 정렬은 “어떤 상황에서 적합한 정렬 방식이 무엇인가?” 에 대한 문제입니다.

따라서

와 같은 것들을 알아야 합니다.

기본 정렬 알고리즘

기초적인 정렬 알고리즘으로 버블 정렬, 선택 정렬, 삽입 정렬 등이 있습니다. 이러한 정렬들은 사실 시간복잡도 면에서는 비효율적입니다. 현재 거의 쓰이지 않습니다. (내부적으로 삽입 정렬만 종종 쓰이고 있습니다.) 하지만 정렬 알고리즘의 작동 원리를 이해하는 데 필요합니다.

정렬 알고리즘에 관해 자세한 내용, 이미지 설명, 구현은 아래 목록의 게시글을 참고해주세요.

효율적인 정렬 알고리즘

기본 정렬 알고리즘은 시간복잡도가 O(N²)으로 커서, 실전에서는 대부분 더 빠른 정렬 알고리즘을 사용하게 됩니다. 퀵 정렬,

정렬 알고리즘에 관해 자세한 내용, 이미지 설명, 구현은 아래 목록의 게시글을 참고해주세요.