7. Quicksort.

Slides:



Advertisements
Similar presentations
Made by 주례 없는 결혼식♥ 대본 사회 : 홍길동.
Advertisements

2009 년 행정안전부 공직설명회 년 행정안전부 공직설명회 2 목 차 I. 개 요 II. 기능직 개편원칙 III. 정보통신현업 개편방안 IV. 주요 이슈.
김예슬 김원석 김세환. Info Northcutt Bikes Northcutt Bikes The Forecasting problem The Forecasting problem The solution 1~6 The.
Mechanical clocks were invented in the northern hemisphere by inventors who were trying to make models of the sun's movement in the sky. To watch the.
숫자 ② 식당이 어디에 있어요? 식당이 4(사)층에 있어요. Sogang Korean 1A UNIT 1 “숫자②”
2 전기회로의 기초 기초전자회로 PPT. ○ 생체의공학과 송지훈 35%
검출기 눈, 사진, Photoelectric device, Photomultipliers, Image intensifiers, Charged Coupled Device,
서울시 ‘찾아가는 동 주민센터’ 사업 시행 이후 지역사회의 변화
Maximum Flow.
(Mathematical Induction)
Sources of the Magnetic Field
6.9 Redundant Structures and the Unit Load Method
14주차 1교시 강화계획 [학습목표] 1. 강화계획의 정의를 안다 [학습내용] 1. 단순한 강화계획 2. 간헐적 강화 3. 복합 계획 4. 선택과 대응법칙 [사전학습] 강화계획이 일어날 수 있는 사례를 생각해본다.
원가와 구매관리 원가의 이해 식자재 구매과정 검수절차 식음자재 확인 반품 보고서 작성 검수관리 입고관리 출고관리 재고관리
연장근로와 야간·휴일근로 김영호 노무사 나눔 노사관계연구소 소장 연세대 일반대학원 박사 수료 고려사이버대 법학과 외래교수
Inductively coupled plasma - mass spectrometer (ICPMS)
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 1 강원대학교 컴퓨터과학전공 문양세.
10장 정렬.
7장 : 캐시와 메모리.
Slope Stability Slice Method - Fellenius Method - Bishop’s Simplified Method 연세대학교 지반공학연구실.
쉽게 배우는 알고리즘 3장. 정렬Sorting
알고리즘 강의 슬라이드 2 분할정복 강의 슬라이드 #2
SmileEDI 가입 안내서 1. SmileEDI `회원가입 절차 -SmileEDI 접속 방법-
제2절 법인세의 계산구조와 세무조정 1. 각 사업연도소득에 대한 법인세 계산구조 회계와 사회 결산서상 당기순이익
On the computation of multidimensional Aggregates
Ch. 5 : Analog Transmission
이산수학(Discrete Mathematics) 수학적 귀납법 (Mathematical Induction)
Genetic Algorithm 신희성.
Dynamic Programming.
Ch. 10 Algorithm Efficiency & Sorting
Ch. 10 Algorithm Efficiency & Sorting
Internet Computing KUT Youn-Hee Han
C언어 응용 제 13 주 그래프2, 정렬.
숭실대학교 마이닝연구실 김완섭 2009년 2월 8일 아이디어  - 상관분석에 대한 연구
계수와 응용 (Counting and Its Applications)
Medical Instrumentation
PCA Lecture 9 주성분 분석 (PCA)
Talk and talk Could you…? 영어 7-b
Course Guide - Algorithms and Practice -
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 년 봄학기
CHAP 9: 정렬 (part 2) 순천향대학교 컴퓨터학부 하 상 호.
Dynamic Programming.
프로그래밍 기초와 실습 Chapter 11 Recursion.
SmileEDI 가입 안내서 1. SmileEDI `회원가입 절차 -SmileEDI 접속 방법-
제 세 동.
기업회생 절차.
2. 윤리학의 원리와 적용 가. 상대주의와 절대주의.
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
CHAP 1:자료구조와 알고리즘.
의성어 국어어휘론 이신옥 정지연 정지형 임총인.
이산수학(Discrete Mathematics) 비둘기 집 원리 (The Pigeonhole Principle)
이산수학(Discrete Mathematics)
Internet Computing KUT Youn-Hee Han
점화와 응용 (Recurrence and Its Applications)
알고리즘 강의 슬라이드 2 분할정복 제 2 장 분할정복 도경구역, 알고리즘, 사이텍미디어, 1999.
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
자동제어공학 4. 과도 응답 정 우 용.
이산수학(Discrete Mathematics)
교육기부 진로체험기관 인증제와 지역 센터 운영 방안 한국직업능력개발원 김승보.
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
알고리즘(Algorithm) – Divide and Conquer (분할정복)
욕은 나의 삶을 망치는 나쁜 습관이다. '욕하면서 배우고 칭찬하며 닮아간다.'
8단계 3층을 완성한다 Case 1 Case 2 Case 3 Case 4
검출기 눈, 사진, Photoelectric device, Photomultipliers, Image intensifiers, Charged Coupled Device,
제 7 장 정렬.
[CPA340] Algorithms and Practice Youn-Hee Han
동 행 코 칭 결 과 방문 상황 BEST WORST 김형* PRO 총평 목 / 디지털 평촌 센터
Chapter 2. Coulomb’s Law & Electric Field Intensity
Chapter 4. Energy and Potential
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
Presentation transcript:

7. Quicksort

Contents Quicksort Randomized quicksort 섹션 7.1에서 퀵소트알고리즘이 무언인지, 그리고 특징으로 어떤것이 있는지 알아보겠습니다. 7.2에서는 퀵소트의 퍼포먼스를 워스트 베스트 에버러지의 각경우에 어떤지 살펴보고 7.3에서 퀵소트의 알고리즘의 변형으로 피봇값을 미리정해두는 것이 아니라 램덤하게 선택함으로서 퍼포먼스가 좋아진다는 것을 설명하고 있습니다. 그리고 7.4는 섹션 7.2보다 퀵소트의 퍼포먼스 분석을 좀더 자세하게 설명하고 있습니다..

Quicksort Divide-and-Conquer paradigm QUICKSORT(A, p, r) if p < r then q ← PARTITION(A, p, r) QUICKSORT(A, p, q - 1) QUICKSORT(A, q + 1, r)

Quicksort Partition Pivot element 2 8 7 1 3 5 6 4 2 1 3 4 7 5 6 8

Quicksort 4 6 5 3 1 7 8 2 4 6 5 3 8 7 1 2 4 6 5 7 8 3 1 2 4 6 5 3 1 7 8 2 4 6 5 7 8 3 1 2 4 6 5 3 1 7 8 2 4 6 5 7 8 3 1 2 4 6 5 3 1 7 8 2 8 6 5 7 4 3 1 2

Quicksort Partition Θ(n) time. Balanced partitioning vs. unbalanced partitioning

Performance of quicksort Balanced partitioning When PARTITION produces two subproblems of sizes ⌊n/2⌋ and ⌈n/2⌉- 1. T (n) ≤ 2T (n/2) + Θ(n) = O(nlgn)

Performance of quicksort Balanced partitioning n n n n/2 n/2 lg n n n/4 n/4 n/4 n/4 n 1 1 1 1

Performance of quicksort Unbalanced partitioning n 1 n-1 n-2 1 1 n-3 n-4 1

Performance of quicksort Unbalanced partitioning T(n-1)=t(n-2)+t(n-1) T(n-2)=t(n-3)+t(n-2) t(n) = t(n-2) + t(n-3) + t(n-1) + t(n) 그리고 t(n)=세타 n 그래서 시그마 세타 k 이다

Worst-case Analysis Worst-case analysis Quicksort takes Ω(n2) time in worst case. Consider the unbalanced partitioning. Is the unbalanced partitioning the worst case?

Worst-case Analysis Worst-case analysis Show that the running time of quicksort is O(n2) by substitution method. Show that T(n)≤cn2 for some constant c.

Worst-case Analysis Worst-case analysis The internal expression is maximized when q = 0 or n-1. We can pick the constant c large enough so that the c(2n-1) term dominates the Θ(n) term. Thus, T(n)=O(n2).

Average-case Analysis By substitution method, show T(n)≤cnlgn for some c. Problem 7-2.

Average-case Analysis II Let X be the number of comparisons over the entire execution of QUICKSORT on an n-element array. Then the average running time of QUICKSORT is O(n + E[X]). We will not attempt to analyze how many comparisons are made in each PARTITION. Rather, we will derive an overall bound on the total number of comparisons.

Average-case Analysis II Let zi denote the ith smallest element in the sorted array. Zij = {zi, zi+1,…, zj} Each pair of elements zi and zj is compared at most once. An element is compared only to the pivot element in each PARTITION. The pivot element used in a PARTITION is never again compared to any other elements.

Average-case Analysis II Pr{zi is compared to zj} Pr{zi or zj is first pivot chosen from Zij}

Average-case Analysis II k = j – i, the harmonic series

Randomized quicksort RANDOMIZED-PARTITION(A, p, r) i ← RANDOM(p, r) exchange A[r] ↔ A[i] return PARTITION(A, p, r)

Randomized quicksort RANDOMIZED-QUICKSORT(A, p, r) 1 if p < r 2 then q ← RANDOMIZED-PARTITION(A, p, r) 3 RANDOMIZED-QUICKSORT(A, p, q - 1) 4 RANDOMIZED-QUICKSORT(A, q + 1, r)