Skip to content

Latest commit

 

History

History
25 lines (19 loc) · 1.17 KB

README(KR).md

File metadata and controls

25 lines (19 loc) · 1.17 KB

Stooge 정렬


재귀적인 정렬 알고리즘으로, 시간 복잡도가 나쁜 편에 속한다. 실행 시간이 버블 정렬보다는 느리지만, slow 정렬보다는 빠르다. 이름은 “The Three Stooges”라는 영화에서 유래되었다.

알고리즘은 다음과 같다.

첫 번째 요소와 마지막 요소를 비교한 뒤 첫 번째의 값이 더 큰 경우 두 요소를 서로 바꾼다.

그리고 목록에 3가지 이상의 요소가 존재할 경우, 다음의 세 과정을 거친다.

  1. 목록의 처음 2/3개의 요소에 대해 Stooge 정렬을 한다.

  2. 마지막 2/3개의 요소에 대해 Stooge 정렬을 한다.

  3. 처음 2/3개의 요소에 대해 다시 Stooge 정렬을 한다.

이때 요소 개수의 2/3를 올림으로 계산하여 정렬 크기를 지정한다는 것이 중요하다.

예를 들어 목록에 다섯 개의 요소가 있다고 할 때 5의 2/3은 3.3333… 이지만 3이 아니라 4로 계산한다.

아래는 Stooge 정렬의 swap 과정을 시각화한 것이다.

Sorting_stoogesort_anim