๋ฒ๋ธ ์ ๋ ฌ์ ๋ฐฐ์ด ๋ด ์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ ์ผ ํฐ ์์๋ฅผ ๋งจ ๋์ผ๋ก ์ด๋์ํค๋ ์ ๋ ฌ ๋ฐฉ์์ด๋ค.
์๊ฐ๋ณต์ก๋๋ O(N**2)๋ก ํจ์จ์ ์ธ ์ ๋ ฌ ๋ฐฉ์์ ์๋๋ค.
์๋์ ๋ฐฐ์ด์ ๋ฒ๋ธ ์ ๋ ฌ์ ์ด์ฉํด ์ค๋ฆ์ฐจ์์ผ๋ก ๋ํ๋ด๋ณด์. ์ง๊ธ๋ถํฐ ์ธ๋ฑ์ค๋ i๋ก ํํํ๊ฒ ๋ค.
๋จผ์ , i = 0๊ณผ i = 1์ ์์๋ฅผ ๋น๊ตํ๋ค. ๋ ํฐ ์๊ฐ ์ผ์ชฝ์ ์์ผ๋ฏ๋ก ์๋ก ์์น๋ฅผ ๋ฐ๊ฟ์ค๋ค.
i = 1๊ณผ i = 2๋ฅผ ๋น๊ตํ๋ค. ๋ ํฐ ์๊ฐ ์ค๋ฅธ์ชฝ์ ์์ผ๋ฏ๋ก ๋ค์์ผ๋ก ๋์ด๊ฐ๋ค.
i = 2์ i = 3์ ๋น๊ตํ๋ค. ๋ ํฐ ์๊ฐ ์ผ์ชฝ์ ์์ผ๋ฏ๋ก ์๋ก ์์น๋ฅผ ๋ฐ๊ฟ์ค๋ค.
i = 3๊ณผ i = 4๋ฅผ ๋น๊ตํ๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ๋ ํฐ ์๊ฐ ์ผ์ชฝ์ ์์ผ๋ฏ๋ก ์๋ก ์์น๋ฅผ ๋ฐ๊ฟ์ค๋ค.
(len(array) - 1) ๋ฒ์ ์ํ์ ํตํด ๊ฐ์ฅ ํฐ ์์์ธ 5๊ฐ ์ ์ผ ์ค๋ฅธ์ชฝ์ ์์นํ๊ฒ ๋์๋ค.
5๋ ๊ทธ๋๋ก ๊ณ ์ ํด๋๊ณ , ๋๋จธ์ง ์์๋ค์ ๋ํ ์ ๋ ฌ์ ๋ค์ ์คํํ๋ค.
4๊ฐ ๊ณ ์ ๋์๋ค. ์ฌ์ค ์ด๋ฏธ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์์ง๋ง, ์ปดํจํฐ๋ ์ด ์ฌ์ค์ ์์ง ๋ชปํ๋ฏ๋ก ๋ง์ ์คํ์์ผ์ค๋ค.
๋ฒ๋ธ ์ ๋ ฌ์ด ์๋ฃ๋์๋ค!
๋ฒ๋ธ ์ ๋ ฌ์ ํ์ด์ฌ๋ก ๊ตฌํํ๋ฉด ์๋์ ๊ฐ๋ค.
def BubbleSort(lst):
N = len(lst)
for i in range(N-1):
for j in range(N-1-i):
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
์ผ์ชฝ ์์๋ถํฐ ๊ณ ์ ์ํค๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ๊ตฌํํ ์๋ ์๋ค.
def BubbleSort2(lst):
N = len(lst)
for i in range(N-1):
for j in range(N-1, i, -1):
if lst[j] < lst[j-1]:
lst[j], lst[j-1] = lst[j-1], lst[j]
'์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 2 - ์ ํ ์ ๋ ฌ(selection sort) (0) | 2022.03.29 |
---|