DevGang

[DB-28] 자료구조 - 정렬 본문

정보처리/DB

[DB-28] 자료구조 - 정렬

별천랑 2021. 1. 30. 21:35

1. 내부 정렬 기법

  • 데이터량이 적을 때 주기억장치 내에서 정렬하는 방법
  • 속도는 빠르나, 정렬할 자료의 양이 많은 경우 부적합

2. 내부 정렬 기법 종류

  • 히프 정렬(heap sort)
  • 기수 정렬(radix sort)
  • 선택 정렬(selection sort)
  • 버블 정렬(bubble sort)
  • 정렬(quick sort)
  • 삽입 정렬(insertion sort)
  • 정렬(shell sort)

3. 외부 정렬 기법

  • 대용량의 데이터를 몇 개의 서브 파일로 나누어 각각 내부 정렬을 한 후에, 테이프나 디스크 내에서 각 서브 파일을 합병하는 방법
  • 속도는 느리지만 정렬하고자 하는 자료의 양이 많을 경우 효과적(보조기억장치 많이 사용)

4. 외부 정렬 기법 종류

  • 진동 병합 정렬(oscillating merge sort)
  • 밸런스 병합 정렬(balanced merge sort)
  • 캐스케이드 병합 정렬(cascade merge sort)
  • 폴리파즈 병합 정렬(polyphase merge sort)

5. 정렬 기법의 종류 

- 버블 정렬(bubble sort)

  • 인접한 키를 비교한 결과로 정렬하는 방법

- 삽입 정렬(insertion sort)

  • 새로운 하나의 레코드를 추가하여 순서에 맞게 배치

- 선택 정렬(selection sort)

  • 최솟값을 찾아 번째 위치에 놓고 다음 최소값을 찾아 번째 위치에 놓는 방법

- 히프 정렬(heap sort)

  • 전이진 트리(complete tree) 이용한 정렬 방식
  • 연산 시간이 최악과 평균의 경우, 모두 0(nlogn)으로 빠른 속도를 가짐

- 퀵 정렬(quick sort)

  • 키를 기준으로 작은 값은 왼쪽에 값은 오른쪽에 모이도록 서로 교환시키는 부분 교환 정렬

- 기수 정렬(radix sort)

  • 레코드의 값을 분석하여 같은 또는 같은 문자끼리 순서에 맞는 버킷에 분배하였다가 버킷의 순서대로 레코드를 꺼내어 정렬하는 기법
  • Queue 이용해서 자릿수 별로 정렬

- 2-way 합병 정렬

  • 주어진 입력 파일을 크기가 2 서브 파일로 나누어서 서브 파일을 정렬

6. 정렬 알고리즘의 선택 시 고려사항

  • 값들의 분포 상태
  • 소요 공간 작업시간
  • 정렬에 필요한 기억공간의 크기
  • 데이터의
  • 초기 데이터의 배열상태
  • 사용 컴퓨터 시스템의 특성

 

'정보처리 > DB' 카테고리의 다른 글

[DB-30] 파일 조직 기법  (0) 2021.01.30
[DB-29] 자료구조 - 검색  (0) 2021.01.30
[DB-27] 자료구조 - 그래프 (Graph)  (0) 2021.01.30
[DB-26] 자료구조 - 트리 (Tree)  (0) 2021.01.30
[DB-25] 자료구조 - 큐 (Queue)  (0) 2021.01.30
Comments