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

More Related Content

More from SeungMin Yang

[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)SeungMin Yang
 
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)SeungMin Yang
 
[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍SeungMin Yang
 
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)SeungMin Yang
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료SeungMin Yang
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비SeungMin Yang
 
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명SeungMin Yang
 
그래프 알고리즘
그래프 알고리즘그래프 알고리즘
그래프 알고리즘SeungMin Yang
 

More from SeungMin Yang (9)

[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
 
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
 
[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍
 
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비
 
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
 
그래프 알고리즘
그래프 알고리즘그래프 알고리즘
그래프 알고리즘
 
GPG 1권 4.12 VIPM
GPG 1권 4.12 VIPMGPG 1권 4.12 VIPM
GPG 1권 4.12 VIPM
 

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

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