deda
Deda의 데이터 디자인
deda
전체 방문자
오늘
어제
  • 분류 전체보기 (121)
    • Python (27)
      • Python 기초 (17)
      • Python 데이터분석 (10)
    • SQL (9)
    • Coding test (54)
      • Python 기초문제 (45)
      • LeetCode (9)
    • BigData (2)
    • ZeroBase (3)
    • UX (0)
    • Business Review (1)
    • 통계 & 수학 (17)
      • 통계학 (14)
      • 수학 (3)
    • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 기초수학
  • 데이터엔지니어
  • 모듈
  • 팩토리얼
  • 최소공배수
  • 빅데이터
  • 등차수열
  • 함수
  • matplotlib
  • 마이데이터
  • 파이썬
  • 소인수분해
  • 네카라쿠배
  • 계산기
  • 릿코드
  • 코딩
  • 계차수열
  • SQL
  • 군수열
  • 프로그래밍
  • 부트캠프
  • 미니콘다
  • pandas
  • 통계
  • 데이터사이언티스트
  • 제로베이스
  • BMI
  • 데이터분석
  • 등비수열
  • 데이터분석가

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
deda

Deda의 데이터 디자인

[정렬] 1부터 100사이 난수 정렬(병합 정렬)
Coding test/Python 기초문제

[정렬] 1부터 100사이 난수 정렬(병합 정렬)

2022. 5. 16. 22:27

🔍  문제

1~100사이 난수 10개를 병합정렬을 사용하여 정렬하기

 

 

🖥  실행

1) 모듈

def mSort(arr, asc=True):

    if len(arr) < 2:
        return arr

    midIdx = len(arr) // 2

    leftArr = mSort(arr[:midIdx], asc=asc)
    rightArr = mSort(arr[midIdx:], asc=asc)

    mergeArr = []
    leftIdx = 0; rightIdx = 0

    while leftIdx < len(leftArr) and rightIdx < len(rightArr):
        if asc == True:
            if leftArr[leftIdx] < rightArr[rightIdx]:
                mergeArr.append(leftArr[leftIdx])
                leftIdx += 1

            else:
                mergeArr.append(rightArr[rightIdx])
                rightIdx += 1

        else:
            if leftArr[leftIdx] > rightArr[rightIdx]:
                mergeArr.append(leftArr[leftIdx])
                leftIdx += 1

            else:
                mergeArr.append(rightArr[rightIdx])
                rightIdx += 1

    mergeArr += leftArr[leftIdx:]
    mergeArr += rightArr[rightIdx:]

    return mergeArr

 

2) 실행

import random as rd
import sortMod as sm
array = rd.sample(range(1,101), 10)


result_asc = sm.mSort(array)
result_dsc = sm.mSort(array, asc=False)

print(f'array : {array}')
print(f'result_asc : {result_asc}')
print(f'result_dsc : {result_dsc}')

 

📝 결과물

array : [4, 86, 25, 99, 22, 78, 73, 57, 95, 45]
result_asc : [4, 22, 25, 45, 57, 73, 78, 86, 95, 99]
result_dsc : [99, 95, 86, 78, 73, 57, 45, 25, 22, 4]

'Coding test > Python 기초문제' 카테고리의 다른 글

[while 반복문] 피보나치 수열  (0) 2022.05.19
[정렬] 1부터 100사이 난수 정렬(퀵 정렬)  (0) 2022.05.17
[근사값] 학점 출력기  (0) 2022.05.13
[최빈값] 성적 분포도 그리기  (0) 2022.05.13
[파이썬 기초] 아스키 코드 최대값 찾기  (0) 2022.05.13
    'Coding test/Python 기초문제' 카테고리의 다른 글
    • [while 반복문] 피보나치 수열
    • [정렬] 1부터 100사이 난수 정렬(퀵 정렬)
    • [근사값] 학점 출력기
    • [최빈값] 성적 분포도 그리기
    deda
    deda
    데이터 분석 / 파이썬 / UX / 정량리서치

    티스토리툴바