퀵 정렬은 기준을 설정한 다음 큰 수와 작은 수를 교환한 후 리스트를 반으로 나누는 방식으로 동작합니다. 퀵 정렬은 피벗(pivot)이 사용됩니다. 큰 숫자와 작은 숫자를 교환할 때, 교환하기 위한 '기준'을 바로 피벗(pivot)이라고 합니다. 퀵 정렬을 수행하기 전에는 피벗을 어떻게 설정할 것인지 미리 명시해야 합니다. 피벗을 설정하고 리스트를 분할하는 방법에 따라서 여러가지 방식으로 퀵 정렬을 구분합니다. 아래 사진처럼 데이터가 있습니다. 피벗을 서정한 뒤에는 왼쪽에서부터 피벗보다 큰 데이터를 찾고, 오른쪽에서부터 피벗보다 작은 데이터를 찾습니다. 그 다음 큰 데이터와 작은 데이터의 위치를 서로 교환해줍니다. 이러한 과정을 반복하면 '피벗'에 대하여 정렬이 수행됩니다. Step 1) 리스트의 첫 번..
선택 정렬은 알고리즘 문제 풀이에 사용하기에는 느린 편입니다. 삽입 정렬은 선택 정렬처럼 동작 원리를 직관적으로 이해하기 쉬운 알고리즘입니다. 선택 정렬에 비해 삽입 정렬은 구현 난이도가 높지만 실행 시간 측면에서 더 효율적인 알고리즘입니다. 선택 정렬은 현재 데이터의 상태와 상관없이 무조건 모든 원소를 비교하고 위치를 바꾸는 반면 삽입 정렬은 특정한 데이터를 적절한 위치에 '사입'한다는 의미에서 삽입 정렬이라고 부릅니다. 삽입 정렬은 특정한 데이터가 적절한 위치에 들어가기 이전에, 그 앞까지의 데이터는 이미 정렬되어 있다고 가정합니다. 정렬되어 있는 데이터 리스트에서 적절한 위치를 찾은 뒤에, 그 위치에 삽입 된다는 접이 특징입니다. (삽입 정렬은 두 번째 데이터 부터 시작합니다. 그 이유는 첫 번째 ..