이전 글 정렬 알고리즘 정리
2024.04.04 - [파이썬] - 파이썬 정렬 알고리즘 선택정렬
파이썬 정렬 알고리즘 선택정렬
정렬이란? 정렬 : 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 의미함 정렬 알고리즘은 상당히 다양함 구현 시 꼭 알아야 하는 swap swap → 아래와 같이 하면, 중간에 temp라는 변수를
anichan.tistory.com
2024.04.05 - [파이썬] - 파이썬 정렬 알고리즘 삽입정렬
파이썬 정렬 알고리즘 삽입정렬
https://anichan.tistory.com/17 파이썬 정렬 알고리즘 선택정렬 정렬이란? 정렬 : 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 의미함 정렬 알고리즘은 상당히 다양함 구현 시 꼭 알아야 하
anichan.tistory.com
버블 정렬
기본 개념 : 앞뒤2개를 기준으로 작고 & 큰 것을 계속 비교를 해나가는 것
→ 이렇게 교환 swap이 더이상 일어나지 않을 때 까지 바꿈
→ 그러면 앞에서 제일 큰 것이 맨 뒤로 가게 됨
제일 큰 놈은 맨 뒤로 가는 것이 핵심 그래서 가면 갈 수록 하는 횟수가 줄어들게 됨
버블 정렬 코드 구현
arr = [-2, 45, 0, 11, 9]
# 기본적으로 정렬하고자 하는 수만큰 돌려야 함
for step in range( len(arr)):
# 앞에서 부터 2개씩 가지고 와서 비교 & 큰 것을 뒤로 swap
for i in range(0, len(arr)-step-1):
#print(step, i)
if arr[i] > arr[i+1]: # 큰 수가 앞에 있으면 뒤로 보냄
arr[i], arr[i+1] = arr[i+1], arr[i]
print(arr)
[-2, 0, 9, 11, 45]
- 코드상, 내용상 : 삽입정렬과 상당히 유사
- 중간에 기록지 필요가 없음 : 선택 정렬과 차이점
- 컨셉 : 서로 서로 다 비교하면서, 뒤로 뒤로 이동
- 비교는 끝까지 2개씩 비교하면서 (i, i-1) & swap