goodthings4me.tistory.com
파이썬 선택정렬 - 정렬되지 않은 값등 중에서 가장 작은 값을 찾아서 제일 앞의 값과 교환하는 방식으로 정렬
■ 선택정렬(Selection Sort) - 오름차순으로 정렬해보기
import random
unorder_num =[]
# 정렬되지 않은 숫자 추출하여 리스트에 넣기
for n in range(10):
unorder_num.append(random.randint(1, 100))
print(unorder_num)
index = 0
for i in range(len(unorder_num)):
base = max(unorder_num)+1 # 비교할 기준 숫자, 리스트의 최대값+1로 구함
for j in range(i, len(unorder_num)):
if base > unorder_num[j]:
base = unorder_num[j]
index = j
unorder_num[index], unorder_num[i] = unorder_num[i], unorder_num[index]
print(unorder_num)
# 다른 방법 =======================
for n in range(len(unorder_num)-1):
for m in range(n + 1, len(unorder_num)):
if unorder_num[n] > unorder_num[m]: # 앞, 뒤 바로 교환 위한 조건
unorder_num[n],unorder_num[base] = unorder_num[base], unorder_num[n]
print(unorder_num)
'''
예시) 처리 절차 i, index
[34, 45, 23, 36, 25]
46 > 34 T, i=0, index=0
34 > 45 F, i=0, index=0
34 > 23 T, i=0, index=2
23 > 36 F, i=0, index=2
23 > 25 F, i=0, index=2, End
u_num[2], u_num[0] = u_num[0], u_num[2]
[23, 45, 34, 36, 25]
46 > 45 T, i=1, index=1
45 > 34 T, i=1, index=2
34 > 36 F, i=1, index=2
34 > 25 T, i=1, index=4, End
u_num[4], u_num[1] = u_num[1], u_num[4]
[23, 25, 34, 36, 45]
46 > 34 T, i=2, index=2
34 > 36 F, i=2, index=2
34 > 45 F, i=2, index=2, End
u_num[2], u_num[2] = u_num[2], u_num[2]
[23, 25, 34, 36, 45]
46 > 36 T, i=3, index=3
36 > 45 F, i=3, index=3, End
u_num[3], u_num[3] = u_num[3], u_num[3]
[23, 25, 34, 36, 45]
46 > 45 T, i=4, index=4, End
u_num[4], u_num[4] = u_num[4], u_num[4]
[23, 25, 34, 36, 45]
'''
'코딩 연습 > 파이썬 기초(예제)' 카테고리의 다른 글
bmi 계산하기 - 한국인의 체질량 지수 계산 [파이썬기초예제] (0) | 2022.04.20 |
---|---|
북마크 관리 프로그램 코딩, 엑셀 생성 관리 [파이썬기초(예제)] (0) | 2022.04.17 |
파이썬 반복문 - 김밥 주문 계산하기 [파이썬기초(예제)] (0) | 2022.04.15 |
[파이썬기초(예제)] 회원가입 아이디 및 비밀번호 생성, 유효성 체크 기능 (0) | 2022.04.15 |
파이썬 openpyxl 활용 엑셀 시트 이름 가져오기 (0) | 2022.04.13 |
댓글