ν°μ€ν 리 λ·°
[Python] μ ν μ λ ¬ (Selection Sort)
yeahajeong 2020. 6. 16. 10:39κ°μ₯ μμ κ²μ μ νν΄μ μ μΌ μμΌλ‘ 보λΈλ€.
λ€μ 10κ°μ μλ₯Ό μ€λ¦ μ°¨μμΌλ‘ μ λ ¬ν΄λ³΄μ
1 10 5 8 7 6 4 3 2 9
κ°μ₯ μμ μ«μ 1μ κ°μ₯ μμͺ½μ μμΌλ μ λ ¬μ΄ λ κ²
1 10 5 8 7 6 4 3 2 9 -> 1 2 5 8 7 6 4 3 10 9
1μ μ μΈνκ³ λλ¨Έμ§ μ€μμ κ°μ₯ μμ μ«μ 2λ₯Ό κ°μ₯ μμ μλ 10κ³Ό λ°κΎΌλ€.
1 2 5 8 7 6 4 3 10 9 -> 1 2 3 8 7 6 4 5 10 9
κ·Έ λ€μ κ°μ₯ μμ μ«μ 3μ κ°μ₯ μμ μ«μ 5μ λ°κΎΌλ€.
μ΄λ° μμΌλ‘ μ λ ¬μ νλ κ²μ΄ μ νμ λ ¬
νμ΄μ¬ μ½λ
# μ νμ λ ¬ (Selection Sort)
# iμ jλ λ°°μ΄μ μμλ€μ λ°λ³΅μ μΌλ‘ νμνκΈ° μν΄ μ¬μ©
# min μ΅μκ° μλ―Έ
# index κ°μ₯ μμ μμκ° μ‘΄μ¬νλ μμΉ
# temp μμ κ΅νμ μν΄ μ¬μ©νλ μμλ³μ
def selection_sort(arr):
# forλ¬Έ λ°°μ΄μ κΈΈμ΄ λ§νΌ λ°λ³΅ (0λΆν° 리μ€νΈ κΈΈμ΄ λ―Έλ§)
for i in range(len(arr)):
min = 9999
# forλ¬Έ μ΅μκ° μ°ΎκΈ° (iλΆν° λ°°μ΄μ κΈΈμ΄ λ―Έλ§)
for j in range(i, len(arr)):
# λκ°μ κ°μ λΉκ΅ν΄μ minμ΄ ν¬λ©΄ minμ arr[j]κ°μ λ£μ΄μ€ν indexλ₯Ό jλ‘ λ³κ²½
if min > arr[j]:
min = arr[j]
index = j
# λκ°μ κ° λ°κΎΈκΈ°
temp = arr[i]
arr[i] = arr[index]
arr[index] = temp
return arr
test = [1, 10, 5, 8, 7, 6, 4, 3, 2, 9]
print("μ ν μ λ ¬λ λ°μ΄ν° : {}".format(selection_sort(test)))
μκ° λ³΅μ‘λ
μ²μμ 1~10κΉμ§ νμΈ
κ·Έ λ€μμλ 2~10κΉμ§ νμΈ
κ·Έ λ€μμλ 3~10κΉμ§ νμΈ
10 + 9 + 8 + ... + 1
n * (n+1) / 2
nμ μ κ³±
O(n*n)
μ νμ λ ¬μ λ€λ₯Έ μ λ ¬κ³Ό λΉκ΅νμ λ λΉν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ΄λ€.
λ°μ΄ν°κ° 컀μ§μλ‘ λ§€μ° λ§μ μ°μ°μ μ²λ¦¬ν΄μΌνκΈ° λλ¬Έμ μκ°μ΄ λ§μ΄ κ±Έλ¦°λ€.
'(ꡬ)μλ£κ΅¬μ‘°&μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Python] μ½μ μ λ ¬ (Insertion Sort) (0) | 2020.06.16 |
---|---|
[Python] λ²λΈ μ λ ¬ (Bubble sort) (0) | 2020.06.16 |
[νλ‘κ·Έλλ¨Έμ€] μ€ν¬νΈλ¦¬ (0) | 2020.06.15 |
μ λ ¬(Sort), νμ(Search) (0) | 2020.06.12 |
μ ν λ°°μ΄ (Linear Arrays) (0) | 2020.06.12 |
- Total
- Today
- Yesterday
- μλ£κ΅¬μ‘°
- java jdk μ€μΉ
- tomcatμ€μΉ
- κ²μλ¬Όμ‘°ν
- κ²μνλ§λ€κΈ°
- μ¨λ¦¬μμ€
- κ²μν μμ
- κ°λ°
- typeAliases
- μ΄ν΄λ¦½μ€ νκΈ μΈμ½λ©
- λΆνΈ μλμμ±
- μ€νλ§λΆνΈ μλμμ±
- λ³λͺ μ²λ¦¬
- μλ°
- Java
- κ²μν μ‘°ν
- Algorithm
- java νκ²½λ³μ
- μ΄ν΄λ¦½μ€ μ€μΉ
- κ°λ°ν경ꡬμΆ
- μκ³ λ¦¬μ¦
- mysqlμ€μΉ
- κ²μλ¬Ό μμ
- μ 체κ²μλ¬Ό μ‘°ν
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |