- thebaleuncoding
정렬에 대해 알아볼까요? - 셸 정렬

셸 정렬은 주어진 입력 파일을 매개 변수의 값에 따라 여러 개의 부 파일로 나누고,
각 부 파일은 삽입 정렬법으로 정렬하는 과정을 되풀이합니다.
셸 정렬은 바로 옆의 이웃한 데이터들을 순차적으로 정렬하지 않는 대신
일정한 길이만큼 떨어진 데이터들을 하나의 그룹으로 묶고,
그 그룹 안의 데이터들을 정렬한다는 특징이 있습니다.
삽입 정렬은 요소들이 삽입될 때 이웃한 위치로 한 칸씩만 이동한다는 단점이 있습니다.
그러나 셸 정렬에서는 요소들이 멀리 떨어진 위치로 이동할 수 있다는 장점이 있습니다.
왜냐하면 셸 정렬이 전체의 배열을 한 번에 정렬하지 않기 때문입니다.
대신 먼저 정렬해야하는 리스트를 일정한 기준에 따라 분류해서
연속적이지 않은 여러 개의 부분 리스트를 만든 뒤 각 부분 리스트를 삽입 정렬합니다.
여러 개의 부분 리스트를 만들고 이를 병합하는 것이 아니라
gap(간격) 값으로 간격을 주어 부분 리스트가 만들어진 것처럼 구현합니다.
#정렬에대해알아볼까요?-셸정렬에 대해 더 알아보고 싶나요?
아래 링크로 이동하세요.