버블 정렬3 - 좌우로 번갈아 가면서 정렬
레프트와 라이트에 대해서 설명부탁드립니다.
안녕하세요.
좌우 버블 정렬은
왼쪽에서 오른쪽으로 정렬할 때마다 매 회전 대상 마지막에 가장 큰 값이 위치됩니다.
또한 오른쪽에서 왼쪽으로 정렬할 때는 매 회전 대상 앞쪽에 가장 작은 값이 위치됩니다.
이렇게 매 회전별로 정렬이 수행될 때 이미 정렬이 완료된 앞쪽이나 끝쪽의 값들은 비교할 필요가 없게 됩니다.
비교를 하지 않기 위해서는 이미 정렬이 완료된 앞쪽이나 끝쪽의 위치를 매번 기억해야 하는데,
매 회전 시 정렬 확인 대상의 앞쪽을 Left 변수가 정렬 확인 대상의 끝쪽을 Right 변수가 저장하고 있게 됩니다.
매 회전별로 정렬을 수행하다 정렬 대상의 위치가 Left나 Right 값과 같아지면 더이상 정렬을 수행하지 않고 다음 과정을 진행하도록 하여 불필요한 시간을 줄이게 되는 것이죠.
오늘도 즐거운 하루 되세요.
-
*2015-07-01 09:21:28
안녕하세요.
좌우 버블 정렬은
왼쪽에서 오른쪽으로 정렬할 때마다 매 회전 대상 마지막에 가장 큰 값이 위치됩니다.
또한 오른쪽에서 왼쪽으로 정렬할 때는 매 회전 대상 앞쪽에 가장 작은 값이 위치됩니다.
이렇게 매 회전별로 정렬이 수행될 때 이미 정렬이 완료된 앞쪽이나 끝쪽의 값들은 비교할 필요가 없게 됩니다.
비교를 하지 않기 위해서는 이미 정렬이 완료된 앞쪽이나 끝쪽의 위치를 매번 기억해야 하는데,
매 회전 시 정렬 확인 대상의 앞쪽을 Left 변수가 정렬 확인 대상의 끝쪽을 Right 변수가 저장하고 있게 됩니다.
매 회전별로 정렬을 수행하다 정렬 대상의 위치가 Left나 Right 값과 같아지면 더이상 정렬을 수행하지 않고 다음 과정을 진행하도록 하여 불필요한 시간을 줄이게 되는 것이죠.
오늘도 즐거운 하루 되세요.