12 70 30 20 55 25 40 50
첫 수행에서 피봇값은 12고
left는 70인데,
right가 오면서 12보다 작은게 하나도 없음
그러면 right가 지정자체가 안되는건데
이 단계에서는 피벗이 무슨 값과 교환이 되면서 1단계가 끝나는건가요?
진짜로 이거 이해는 하고 있다고 생각했는데요 이런 경우는 처음 봐서....
12 70 30 20 55 25 40 50
첫 수행에서 피봇값은 12고
left는 70인데,
right가 오면서 12보다 작은게 하나도 없음
그러면 right가 지정자체가 안되는건데
이 단계에서는 피벗이 무슨 값과 교환이 되면서 1단계가 끝나는건가요?
진짜로 이거 이해는 하고 있다고 생각했는데요 이런 경우는 처음 봐서....
교환은 일어나지 않고 12는 정렬된 위치에 있으니 12가 제외되고 배열이 줄어듬
코드 돌려보니 그렇게 돌아가던데..그게 그 원리군요...........
L, R, 피봇이 왜 교환되는 지를 먼저 생각해보시는 편이 좋을 듯. 퀵정렬의 본질은 피봇보다 작은 값은 왼쪽에, 큰 값은 오른쪽에 놓는 것임(오름차순 기준)
감사합니다. 어려운 세계네요