더북(TheBook)

2. 두 항목의 순서가 뒤바뀌어 있으면(즉, 왼쪽 값이 오른쪽 값보다 크면) 두 항목을 교환(swap)한다(순서가 올바르다면 2단계에서는 아무것도 하지 않는다).

▲ 그림 4-2

3. “포인터”를 오른쪽으로 한 셀씩 옮긴다.

▲ 그림 4-3

4. 배열의 끝까지 또는 이미 정렬된 값까지 1단계부터 3단계를 반복한다(이어지는 절에서 단계별로 차례차례 따라가다 보면 더 이해하기 쉬울 것이다). 이제 배열의 첫 패스스루(pass-through)가 끝났다. 즉 배열 끝까지 값을 하나하나 가리키며 배열을 “통과”했다.

5. 이제 두 포인터를 다시 배열의 처음 두 값으로 옮겨서 1단계부터 4단계를 다시 실행함으로써 새로운 패스스루를 실행한다. 교환이 일어나지 않는 패스스루가 생길 때까지 패스스루를 반복한다. 교환할 항목이 없다는 것은 배열이 정렬됐고 문제를 해결했다는 뜻이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.