- ์๋ฐฉํฅ ๊ฑฐํ์ ๋ ฌ (bidirectional bubble sort)๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ ๋ฒ๋ธ์ ๋ ฌ์ ๋ณํ์ด๋ค.
- ํ๋ฒ์ ๋ฃจํด๋ง๋ค
๋ฐฉํฅ์ ๋ฐ๊ฟ
์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ๋ฒ๋ธ์ ๋ ฌ๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง๋ ์์ง๋ง ๋ฒ๋ธ ์ ๋ ฌ๋ณด๋ค ๋น ๋ฅด๋ค.
ํ์ด์ฌ ์์ ์ฝ๋
def cocktail(arr, a, b):
swapped = True
while swapped == True:
swapped = False
for i in range(a, b):
if arr[i] > arr[i+1]:
arr[i], arr[i+1] = arr[i+1], arr[i]
if swapped == False:
break
swapped = False
b = b - 1
for i in range(b-1, a-1, -1):
if arr[i] > arr[i+1]:
arr[i], arr[i+1] = arr[i+1], arr[i]
swapped = True
a = a + 1