반응형
1. 코드입니다.
N = int(input()) #1
A = []
for i in range(N) : #2
A.append(input())
for a in range(N-1) : #3
for b in range(N-1) :
if A[b] > A[b+1] : #4
A[b], A[b+1] = A[b+1], A[b]
print(A)
#1 : 리스트의 크기 입력(입력 받을 리스트의 값들 갯수)
#2 : 리스트에 값 입력
#3 : 버블 소트를 리스트의 크기 N 만큼 반복
#4 : 첫 자리와 그 다음 자리 비교 후 앞이 더 크면 swap
이미 정렬 완료 됐을 때 코드
N = int(input())
A = []
for i in range(N) :
A.append(input())
for a in range(N-1) :
flag = 0
for b in range(N-1) :
if A[b] > A[b+1] :
A[b], A[b+1] = A[b+1], A[b]
flag = 1
print(A)
if flag == 0 :
break
print(A)
flag를 사용하여 기존에는 0이다가, 스왑을 했을 시 1로 변경 if문으로 안들어갈 때 flag는 1로 변하지 않으니 정렬이 완료되면 정지
버블정렬
- 두 인접한 원소를 검사하여 정렬하는 방법
- 버블정렬의 시간 복잡도 : O(n^2)
- 최선 : 이미 정렬되어 있는 경우 -> swap 횟수 : 0번, 비교횟수 : n(n-1) / 2
- 최악 : 숫자가 내림차순으로 되어 있는 경우 -> swap 횟수 : n(n-1) / 2, 비교 횟수 n(n-1) / 2
반응형
'Language > Python' 카테고리의 다른 글
파이썬 웹 페이지에서 데이터 추출하기 (0) | 2020.09.01 |
---|---|
파이썬 웹페이지 추출하기 (0) | 2020.09.01 |
주피터 노트북 테마 변경 및 종류 (0) | 2020.08.31 |
주피터 노트북 단축키 정리 (0) | 2020.08.31 |
파이썬(Python) 최대공약수와 최소공배수 (1) | 2019.12.05 |
파이썬(Python) 세자리 수를 곱해 만들 수 있는 가장 큰 대칭수 (0) | 2019.12.04 |
파이썬(Python) 코드 실행시간 측정하는 코드 (0) | 2019.12.03 |
파이썬(Python) 가장 큰 소인수 구하기 (0) | 2019.12.03 |
최근댓글