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