[X]Sort & Merge(파일구조에서의 정렬&합병)

File구조에서의 정렬

  • 파일처리론에서 배운 내용을 배경으로 정리하겠다. (자세한건 책 확인)
  • 보통 Run생성후 합병함으로써 정렬을 끝냄(File)
    => 제한된 용량 안에서 정렬을 위해 보조 저장장치 개념의 Run이 필요한 것이다.


1. Internal Sorting(내부정렬)

  • 데이터가 적어서 메인 메모리 내에 모두 저장시켜 정렬이 가능할 때
  • Record Read, Write에 걸리는 시간이 문제되지 않는다.


2. External Sorting(외부정렬)

  • 데이터가 많아서 메인 메모리의 용량을 초과하여 보조 저장장치에 저장된 파일을 정렬할 때
  • Record, Read, Write에 걸리는 시간이 중요
  • 정렬/합병(sort/merge)
    • Run : 하나의 파일을 여러 개로 분할하여 내부 정렬 기법으로 정렬시킨 서브파일(subfile)
    • Run들을 합병(merge)하여 원하는 하나의 정렬된 파일로 만든다.


2-1. Sort Phase(정렬 단계)

Run 생성 방법
  • 내부 정렬 (internal sort)
    • 내부 정렬 또한 Run을 생성하고 merge를 하는것임!! 1번에서 말한 내부정렬의 의미는 그냥 메인 메모리 내에 데이터가 모두 저장이 된다면, merge이런게 필요없이 바로 정렬되고 끝날거라는 의미.
  • 대체 선택 (replacement selection) -> 참고 게시물
  • 자연 선택 (natural selection)


2-2. Merge Phase(합병 단계)

Merge 수행 방법
  • m-원 합병(m-way merge)
  • 균형 합병(balanced merge)
  • 다단계 합병(polyphase merge)
  • 계단식 합병(cascade merge)

댓글남기기