🔍 문제
1부터 100사이의 난수 10개를 오름차순, 내림차순으로 정렬(퀵 정렬 사용)
🖥 실행
1) 모듈
def qSort(arr, asc=True):
if len(arr) < 2:
return arr
midIdx = len(arr)//2
midVal = arr[midIdx]
smallArr = []; sameArr = []; bigArr = []
for n in arr:
if n < midVal:
smallArr.append(n)
elif n == midVal:
sameArr.append(n)
else:
bigArr.append(n)
if asc:
return qSort(smallArr, asc=asc) + sameArr + qSort(bigArr, asc=asc)
else:
return qSort(bigArr, asc=asc) + sameArr + qSort(smallArr, asc=asc)
2) 실행 파일
import random as rd
import quickSort as qs
array = rd.sample(range(1, 101), 10)
result_asc = qs.qSort(array)
result_dsc = qs.qSort(array, asc=False)
print(f'array : {array}')
print(f'array_asc : {result_asc}')
print(f'array_dsc : {result_dsc}')
📝 결과물
array : [49, 29, 30, 93, 58, 97, 11, 45, 79, 34]
array_asc : [11, 29, 30, 34, 45, 49, 58, 79, 93, 97]
array_dsc : [97, 93, 79, 58, 49, 45, 34, 30, 29, 11]
'Coding test > Python 기초문제' 카테고리의 다른 글
[while 반복문] 계차수열 (0) | 2022.05.19 |
---|---|
[while 반복문] 피보나치 수열 (0) | 2022.05.19 |
[정렬] 1부터 100사이 난수 정렬(병합 정렬) (0) | 2022.05.16 |
[근사값] 학점 출력기 (0) | 2022.05.13 |
[최빈값] 성적 분포도 그리기 (0) | 2022.05.13 |