정렬 정렬 (sorting)이란 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 말한다. 정렬 알고리즘은 이진 탐색 (binary search)의 전처리 과정이기도 하다. 정렬 알고리즘은 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬 등 다양한 알고리즘이 존재하고, 문제에서 요구하는 조건에 따라서 적절한 정렬 알고리즘을 공식처럼 사용해야 한다. 만약 상황에 적절하지 못한 알고리즘을 이용하면 당연히 프로그램은 비효율적으로 동작하고 필요 이상으로 시간을 많이 소요한다. 이제 문제 상황을 가정해 보자. 숫자가 하나씩 적힌 카드가 10장이 있다. 이를 오름 차순으로 정렬해보자. 우리는 보통 카드를 한번 훑고 숫자가 0 ~ 9로 구성된 것을 눈치채고 0에서 9까지 순서대로 나열한다. 이것은 우리도 모르게 데..