버블 정렬의 로직은 다음과 같다.
- 인접한 두 원소를 비교한다.
- [왼쪽 원소] > [오른쪽 원소] 라면 swap! 한다.
- 가장 큰 원소부터 오른쪽에 정렬된다.
- 데이터가 하나씩 정렬되면서 비교에서 제외된다.
풀이
# 입력
n = int(input())
num = []
for i in range(n):
num.append(int(input()))
# 정렬
for i in range(1, n):
for j in range(n-i):
if num[j] > num[j+1]: # 왼쪽 값이 클 경우 swap
tmp = num[j]
num[j] = num[j+1]
num[j+1] = tmp
# 출력
for i in range(n):
print(num[i])
정렬 함수를 사용하면 훨씬 간단하게 풀이 할 수 있다.
리스트의 메소드인 sort() 함수를 사용하면 원래의 리스트가 정렬된 상태로 변경된다.
풀이
# 입력
n = int(input())
num = []
for i in range(n):
num.append(int(input()))
# 정렬
num.sort()
# 출력
for i in range(n):
print(num[i])
244ms가 걸린 버블 정렬에 비해 정렬 함수는 96ms 밖에 걸리지 않았다.