- μ λ ¬ (sorting): μ΄λ€ λ°μ΄ν°λ€μ΄ μ£Όμ΄μ‘μ λ μ΄λ₯Ό μ ν΄μ§ μμλλ‘ λμ΄νλ κ²
- μ λ ¬μ νλ‘κ·Έλ¨ μμ±μ λΉλ²νκ² νμλ‘ ν¨
- λ€μν μκ³ λ¦¬μ¦μ΄ κ³ μλμμΌλ©°, μκ³ λ¦¬μ¦ νμ΅μ νμ
λ€μν μ λ ¬ μκ³ λ¦¬μ¦ μ΄ν΄λ₯Ό ν΅ν΄, λμΌν λ¬Έμ μ λν΄ λ€μν μκ³ λ¦¬μ¦μ΄ κ³ μλ μ μμμ μ΄ν΄νκ³ , κ° μκ³ λ¦¬μ¦κ° μ±λ₯ λΉκ΅λ₯Ό ν΅ν΄, μκ³ λ¦¬μ¦ μ±λ₯ λΆμμ λν΄μλ μ΄ν΄ν μ μμ
- λ μΈμ ν λ°μ΄ν°λ₯Ό λΉκ΅ν΄μ, μμ μλ λ°μ΄ν°κ° λ€μ μλ λ°μ΄ν°λ³΄λ€ ν¬λ©΄, μ리λ₯Ό λ°κΎΈλ μ λ ¬ μκ³ λ¦¬μ¦
μ§μ λμΌλ‘ 보면 λ μ΄ν΄κ° μ½λ€: https://visualgo.net/en/sorting
- νΉμ΄μ μ°Ύμ보기
- nκ°μ 리μ€νΈκ° μλ κ²½μ° μ΅λ n-1λ²μ λ‘μ§μ μ μ©νλ€.
- λ‘μ§μ 1λ² μ μ©ν λλ§λ€ κ°μ₯ ν° μ«μκ° λ€μμλΆν° 1κ°μ© κ²°μ λλ€.
- λ‘μ§μ΄ κ²½μ°μ λ°λΌ μΌμ° λλ μλ μλ€. λ°λΌμ λ‘μ§μ μ μ©ν λ ν λ²λ λ°μ΄ν°κ° κ΅νλ μ μ΄ μλ€λ©΄ μ΄λ―Έ μ λ ¬λ μνμ΄λ―λ‘ λ μ΄μ λ‘μ§μ λ°λ³΅ μ μ©ν νμκ° μλ€.
- Logic
- for num in range(len(data_list)) λ°λ³΅
- swap = 0 (κ΅νμ΄ λμλμ§λ₯Ό νμΈνλ λ³μλ₯Ό λμ)
- λ°λ³΅λ¬Έ μμμ, for index in range(len(data_list) - num - 1) n - 1λ² λ°λ³΅ν΄μΌ νλ―λ‘
- λ°λ³΅λ¬Έμμ λ°λ³΅λ¬Έ μμμ, if data_list[index] > data_list[index + 1] μ΄λ©΄
-
data_list[index], data_list[index + 1] = data_list[index + 1], data_list[index] -
swap += 1 - λ°λ³΅λ¬Έ μμμ, if swap == 0 μ΄λ©΄, break λ
python
def bubblesort(data):
for index in range(len(data) - 1):
swap = False
for index2 in range(len(data) - index - 1):
if data[index2] > data[index2 + 1]:
data[index2], data[index2 + 1] = data[index2 + 1], data[index2]
swap = True
if swap == False:
break
return data
import random
data_list = random.sample(range(100), 50)
print (bubblesort(data_list))
C++


