- ๋ฒ๋ธ ์ ๋ ฌ์ ์๋ก ์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํ์ฌ ํฌ๊ธฐ๊ฐ ์์๋๋ก ๋์ด ์์ง ์์ผ๋ฉด ์๋ก ๊ตํํ๋ฉฐ ์ ๋ ฌํฉ๋๋ค.
- ์ ํ ์ ๋ ฌ๊ณผ ๊ธฐ๋ณธ ๊ฐ๋ ์ด ์ ์ฌํฉ๋๋ค.
- ์ฒซ ๋ฒ์งธ ์์๋ถํฐ ๋ง์ง๋ง ์์๊น์ง ์ฐจ๋ก๋๋ก ์ธ์ ํ ์์๋ฅผ ๋น๊ตํฉ๋๋ค.
- ์๋ก ๋น๊ตํ์ฌ ์ ์์๊ฐ ๋ ํฌ๋ค๋ฉด ์๋ก ์์น๋ฅผ ๊ตํํด์ค๋๋ค.
- ํ ์ฌ์ดํด์ด ์๋ฃ๊ฐ ๋๋ฉด, ํด๋น ์ฌ์ดํด์ ๋ง์ง๋ง์ ์์น์ํจ ์์๋ ์ ๋ ฌ์ด ์๋ฃ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
- ์ด๋ ๊ฒ ํ ์ฌ์ดํด์ ์ํํ ๋๋ง๋ค ๋ง์ง๋ง์ ์์น์ํจ ์์๋ ์ ๋ ฌ์ด ์๋ฃ๋๋ฉฐ ์ ๋ ฌ์์ ์ ์ธ๋๋ ๋ฐ์ดํฐ๊ฐ ํ๋์ฉ ๋์ด๋ฉ๋๋ค.
- ๊ณต๊ฐ ๋ณต์ก๋
- ์ฃผ์ด์ง ๋ฐฐ์ด ์์์ ๊ตํ(swap)์ ํตํด, ์ ๋ ฌ์ด ์ํ๋๋ฏ๋ก O(n)์ ๋๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ์์ด (n-1)๋ฒ, (n-2)๋ฒ ... 1๋ฒ ์งํ๋๋ฏ๋ก n(n-1)/2, ์ฆ O(nยฒ)์ ๋๋ค.
- ์ต์ , ํ๊ท , ์ต์ ์ ๊ฒฝ์ฐ ์๊ฐ๋ณต์ก๋๋ O(nยฒ)์ผ๋ก ๋์ผํฉ๋๋ค.
- ๊ตฌํ์ด ๋งค์ฐ ๊ฐ๋จํ๊ณ , ์์ค์ฝ๋๊ฐ ์ง๊ด์ ์ ๋๋ค.
- n๊ฐ ์์์ ๋ํด n๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ์ ๋ฐ ๋น๊ต๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ์ต์ ์ด๋ ์ต์ ์ด๋ O(nยฒ)์ด๋ผ๋ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋นํจ์จ์ ์ ๋๋ค.
- ์์์ ๊ฐ์๊ฐ ๋ง์์ง๋ฉด ๋น๊ต ํ์๊ฐ ๋ง์์ ธ ์ฑ๋ฅ์ด ์ ํ ๋ฉ๋๋ค.
๋ฌธ์
ํ์ด
ํํธ๋ฅผ ๋ณด๋ฉด ์๊ฐ๋ณต์ก๋๊ฐ O(nยฒ)์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ ํ ์ ์์ต๋๋ค.
n = int(input())
numbers = []
for _ in range(n):
numbers.append(int(input()))
# Bubble Sort
for i in range(n - 1):
for j in range(n - (i + 1)):
if numbers[j] >= numbers[j + 1]: # 1.
numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] # 2.
for n in numbers:
print(n)
- ๋ง์ฝ ์์ ์์๊ฐ ๋ค์ ์์๋ณด๋ค ํฌ๋ค๋ฉด
- ๋ ๊ฐ์ ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ์ค๋๋ค.