알고리즘(9)_병합정렬, 퀵정렬

Jio.B·2023년 6월 28일

병합정렬

  • 자료구조를 분할(1)하고 각각의 분할된 자료구조를 정렬한 후 다시 병합(2)하여 정렬
  • 삽입, 버블 등의 정렬에 비해 속도면에서 향상된 정렬
  • 내부적으로 재귀 알고리즘을 적용한 개념

1단계 : 분할

2단계 : 병합
= 인접한 데이터끼리 크기 비교하면서 병합(작은 수를 앞으로, 큰 수를 뒤로)

  • 병합정렬 기본 알고리즘

[ 예제 1 ] 1부터 100까지의 난수 10개 생성하고 다음의 요구사항을 만족하는 모듈 만들기

  • 요구사항 1 : 병합정렬 알고리즘 이용한 난수 정렬 모듈 구현
  • 요구사항 2 : 위의 모듈에 오름차순과 내림차순을 선택할 수 있는 옵션 추가

< 모듈 >

< 실행파일 및 실행결과 >


퀵정렬

  • 기준 값보다 작은 값과 큰 값으로 분리한 후 다시 합침
  • 내부적으로 재귀 알고리즘을 적용한 개념

  • 퀵정렬 기본 알고리즘

[ 예제 2 ] 1부터 100까지의 난수 10개 생성하고 다음의 요구사항을 만족하는 모듈 만들기

  • 요구사항 1 : 퀵정렬 알고리즘 이용한 난수 정렬 모듈 구현
  • 요구사항 2 : 위의 모듈에 오름차순과 내림차순을 선택할 수 있는 옵션 추가

(!!주의!! : 오류사항_옵션추가 필요)

< 실행파일, 모듈, 실행결과 >

0개의 댓글