셰이커 정렬이란? 버블 정렬을 개선한 알고리즘으로, 양방향 버블 정렬, 칵테일 정렬, 칵테일 셰이커 정렬이라고도 부른다. 지난 글(https://vibeee.tistory.com/29)에서 버블 정렬로 3가지 코드를 살펴보았다.하지만 가장 큰 값이 맨 앞에 있는 경우 3가지 코드 모두 비효율적인 정렬 과정을 수행하는 것을 알 수 있었다. 다음 코드에서는 이 부분을 셰이커 정렬로 개선한 코드를 살펴본다.from typing import MutableSequencedef shaker_sort(a: MutableSequence) -> None: left = 0 right = len(a) - 1 last = right while left a[j]: # 앞의 값이 뒤보다 큰 경우에 교환 ..