16
정렬, 선택 알고리즘 2011. 2. 12 해보리

[11 0212] 정렬, 선택, 탐색 알고리즘

  • Upload
    hebory

  • View
    2.515

  • Download
    0

Embed Size (px)

Citation preview

Page 1: [11 0212] 정렬, 선택, 탐색 알고리즘

정렬, 선택

알고리즘2011. 2. 12

해보리

Page 2: [11 0212] 정렬, 선택, 탐색 알고리즘

오늘의 주제• 정렬

o 기초적인 정렬 알고리즘

o 고급 정렬 알고리즘

o 비교정렬 시간의 하한

o 특수 정렬 알고리즘

• 선택 알고리즘o 평균 선형시간 선택 알고리즘

o 최악의 경우 선형시간 선택 알고리즘

Page 3: [11 0212] 정렬, 선택, 탐색 알고리즘

정렬• 기초적인 정렬 알고리즘

o 선택정렬

o 버블정렬

o 삽입정렬

• 고급 정렬 알고리즘o 병합정렬

o 퀵정렬

o 힙정렬

Page 4: [11 0212] 정렬, 선택, 탐색 알고리즘

정렬

Page 5: [11 0212] 정렬, 선택, 탐색 알고리즘

쉬어가기

Page 6: [11 0212] 정렬, 선택, 탐색 알고리즘

정렬

• 비교정렬 시간의 하한

• 특수 정렬 알고리즘o 기수정렬

o 계수정렬

Page 7: [11 0212] 정렬, 선택, 탐색 알고리즘

정렬 내용 정리

Page 8: [11 0212] 정렬, 선택, 탐색 알고리즘

선택 알고리즘

• 평균 선형시간 선택 알고리즘

• 최악의 경우 선형시간 선택 알고리즘

Page 9: [11 0212] 정렬, 선택, 탐색 알고리즘

선택 알고리즘 내용 정리

Page 10: [11 0212] 정렬, 선택, 탐색 알고리즘

탐색 알고리즘2011. 2. 19

해보리

Page 11: [11 0212] 정렬, 선택, 탐색 알고리즘

개요• 정의

o 데이터 집단 내에서 특정 데이터를 찾아내는 작업

• 탐색 알고리즘의 효율성o 데이터 집단의 구조가 어떤가에 따라 영향을 받음

o 탐색 알고리즘에 따라 데이터 집단의 구조가 영향을 받음

• 탐색 방법o 선형 탐색 방법

o 이진 탐색 방법

Page 12: [11 0212] 정렬, 선택, 탐색 알고리즘

선형 탐색

Page 13: [11 0212] 정렬, 선택, 탐색 알고리즘

개선된 선형 탐색• 리스트를 주기적으로 재배치하여 자주 탐색되는 레코드

를 자주 접근하는 위치에 보내는 방법o 전진이동법,

o 전위법

o K-전진 이동법

o 계수법

Page 14: [11 0212] 정렬, 선택, 탐색 알고리즘

개선된 선형 탐색• 전진 이동(move-to-front)법

o 탐색 대상 레코드가 찾아지면 그 레코드를 맨 앞으로 이동

o 한 번 탐색 된 레코드는 다시 탐색 될 가능성이 클 것으로 예상

• 전위(transpost)법o 탐색 된 레코드를 그것의 앞 레코드와 바꿈

o 자주 탐색 대상이 되면 점점 앞으로 감

o 지역성(locality)이 거의 없는 균등한 탐색 확률을 갖고자 하는 리스트에 적합

• K-전진 이동법o 탐색된 레코드를 단순히 k 위치 만큼 이동

Page 15: [11 0212] 정렬, 선택, 탐색 알고리즘

개선된 선형 탐색• 계수법

o 각 레코드의 탐색 횟수를 별도로 저장

o 탐색 후 탐색 횟수를 증가 시킴

o 자신의 탐색 횟수보다 작은 횟수 레코드와 위치 변경

Page 16: [11 0212] 정렬, 선택, 탐색 알고리즘

이진 탐색• 정의

o 레코드의 집합을 특정한 규칙에 맞게 둘로 나눈 후 탐색하는 방법

• 방법o 이진 트리로 구성된 레코드의 키값을 비교해 가며 자신과 동일하면 탐색 종료

o 키가 다르면 트리가 구성된 규칙에 맞게 해당 가지로 탐색 진행

• 비용o 완전 이진 트리 : O(log n)

o 경사 트리 : O(n)

o 탐색 효율성을 위해서는 완전 이진 트리 또는 그와 유사한 형태의 트리(AVL 트리등)로 만들어야 함