기수 정렬 (Radix Sort)
기수 정렬 (Radix Sort) 제한적인 범위 내에 있는 숫자(ex. 주민등록번호, 학번, 계좌번호)에 대해서 각 자릿수 별로 정렬하는 알고리즘 기(radix) : 특정 진수를 나타내는 숫자들 10진수의 기 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 2진수의 기 : 0, 1 LSD 기수 정렬 Least Significant Digit(LSD) 기수 정렬 1의 자리부터 k자리로 정렬 수행 RL(Right-to-Left) 기수 정렬이라고도 함 MSD 기수 정렬 Most Significant Digit(MSD) 기수 정렬 k자리부터 1의 자리로 정렬 수행 LR(Left-to-Right) 기수 정렬이라고도 함 # LSD(RL) 기수 정렬 from collections import deque def..
쉘 정렬
쉘 정렬 삽입 정렬을 이용하여 배열 뒷부분의 작은 숫자를 앞부분으로 빠르게 이동시키고, 동시에 앞부분의 큰 숫자는 뒷부분으로 빠르게 이동시키는 정렬 알고리즘 간격(gap)을 이용 30 60 90 10 40 80 40 20 10 60 50 30 40 90 80 ◼ 간격(gap)이 5인 숫자 그룹 그룹1 : [30, 80, 50] 그룹2 : [60, 40, 30] 그룹3 : [90, 20, 40] 그룹4 : [10, 10, 90] 그룹5 : [40, 60, 80] 각 그룹 별로 삽입 정렬 수행 ▶ 30 30 20 10 40 50 40 40 10 60 80 60 90 90 80 처음보다 비교적 큰 숫자가 뒷부분으로, 작은 숫자가 앞부분으로 이동 그 다음에는 간격을 전에 설정한 것보다 작게 하여 다시 그룹별 삽..