Upload
hebory
View
2.515
Download
0
Embed Size (px)
Citation preview
정렬, 선택
알고리즘2011. 2. 12
해보리
오늘의 주제• 정렬
o 기초적인 정렬 알고리즘
o 고급 정렬 알고리즘
o 비교정렬 시간의 하한
o 특수 정렬 알고리즘
• 선택 알고리즘o 평균 선형시간 선택 알고리즘
o 최악의 경우 선형시간 선택 알고리즘
정렬• 기초적인 정렬 알고리즘
o 선택정렬
o 버블정렬
o 삽입정렬
• 고급 정렬 알고리즘o 병합정렬
o 퀵정렬
o 힙정렬
정렬
쉬어가기
정렬
• 비교정렬 시간의 하한
• 특수 정렬 알고리즘o 기수정렬
o 계수정렬
정렬 내용 정리
선택 알고리즘
• 평균 선형시간 선택 알고리즘
• 최악의 경우 선형시간 선택 알고리즘
선택 알고리즘 내용 정리
탐색 알고리즘2011. 2. 19
해보리
개요• 정의
o 데이터 집단 내에서 특정 데이터를 찾아내는 작업
• 탐색 알고리즘의 효율성o 데이터 집단의 구조가 어떤가에 따라 영향을 받음
o 탐색 알고리즘에 따라 데이터 집단의 구조가 영향을 받음
• 탐색 방법o 선형 탐색 방법
o 이진 탐색 방법
선형 탐색
개선된 선형 탐색• 리스트를 주기적으로 재배치하여 자주 탐색되는 레코드
를 자주 접근하는 위치에 보내는 방법o 전진이동법,
o 전위법
o K-전진 이동법
o 계수법
개선된 선형 탐색• 전진 이동(move-to-front)법
o 탐색 대상 레코드가 찾아지면 그 레코드를 맨 앞으로 이동
o 한 번 탐색 된 레코드는 다시 탐색 될 가능성이 클 것으로 예상
• 전위(transpost)법o 탐색 된 레코드를 그것의 앞 레코드와 바꿈
o 자주 탐색 대상이 되면 점점 앞으로 감
o 지역성(locality)이 거의 없는 균등한 탐색 확률을 갖고자 하는 리스트에 적합
• K-전진 이동법o 탐색된 레코드를 단순히 k 위치 만큼 이동
개선된 선형 탐색• 계수법
o 각 레코드의 탐색 횟수를 별도로 저장
o 탐색 후 탐색 횟수를 증가 시킴
o 자신의 탐색 횟수보다 작은 횟수 레코드와 위치 변경
이진 탐색• 정의
o 레코드의 집합을 특정한 규칙에 맞게 둘로 나눈 후 탐색하는 방법
• 방법o 이진 트리로 구성된 레코드의 키값을 비교해 가며 자신과 동일하면 탐색 종료
o 키가 다르면 트리가 구성된 규칙에 맞게 해당 가지로 탐색 진행
• 비용o 완전 이진 트리 : O(log n)
o 경사 트리 : O(n)
o 탐색 효율성을 위해서는 완전 이진 트리 또는 그와 유사한 형태의 트리(AVL 트리등)로 만들어야 함