Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
1,3 MB
Nội dung
Ch ng Phân tích ph c t p c a m t s gi i thu t s p th t tìm ki m N i dung Vài ph ng ph p s p th t c n b n Quicksort X p th t d a vào c s X p th t b ng ph ng ph p tr n X p th t ngo i Vài ph ng ph p tìm ki m c n b n Nguy n t c v s p th t Xét nh ng ph ng pháp s p th t m t t p tin g m m u tin (record) có ch a khóa (key) Khóa mà m t ph n c dùng i u n vi c s p th t c a m u tin, M c tiêu: s p x p m u tin cho tr khóa c a chúng có th t theo m t qui lu t th t ó c s p th t có th ch a b nh N u t p tin gi i thu t s p th t c g i s p th t n i (internal sorting) Vi c s p th t t p tin l u t ngo i (external sorting) b nh ph c g i s p th Hai nh m ph ng ph p s p th t Chúng ta quan t m n th i gian tính tốn c a gi i thu t s p th t M t nhóm g m ph ng pháp c n b n òi h i th i gian tính tốn t l v i N s p th t N ph n t Các ph ng pháp tiên ti n h n có th s p th t N ph n t th i gian ch y t l v i NlgN M t c tính c a ph ng pháp s p th t tính n nh (stability) M t ph ng pháp s p th t c g i n nh c th t t ng i c a ph n t b o tồn tr khóa t p tin Nh m ph ng ph p c n b n V i nh m n y, c hai ph ch n kh o sá t: ng ph p s p th t c - s p th t b ng ph ng phá p ch n (selection sort) - s p th t b ng ph ng phá p chèn (insertion sort) V i m c ích t p trung v o khía c nh gi i thu t ta s m vi c v i c c ph ng phá p mà n ch s p th t cá c m ng s nguyên theo th t l n d n c a s S p th t b ng ph ng ph p ch n Ý t ng: Tr c tiên t m ph n t nh nh t m ng v hoán i v i ph n t ang v trí th nh t m ng r i tìm ph n t nh th nhì m ng hốn i v i c th cho ph n t ang v trí th nhì m n toàn m ng ã c s p th t ” 390 205 182 45 235 → 205 182 390 235 → 205 390 235 → 390 235 → Gi i thu t s p th t b ng ph ng ph p ch n procedure selection; var i, j, min, t: integer; begin for i :=1 to N-1 begin :=i; for j :=i+1 to N if a[j] v begin a[j] := a[j-1]; // pull down j:= j-1 end; a[j]:=v; end; end; 10 X p th merg t ngo i b ng p.p tr n External Sor K thu t thông d ng nh t s p th t ngo i l gi i thu t s p th t ngo i b ng ph ng pháp tr n (external sort-merge algorithm) Ph ng pháp s p th t ngo i g m b c: t o run tr n run M: s trang (page) c a b buffer) m b nh (memory- 42 X p th Trong b sau: i = 0; repeat t ngo i b ng p.p tr n c 1, m t s run c th t c t o b ng cách blocks of the file, or the rest of the file, whichever is smaller; sort the in-memory part of the file; write the sorted data to the run file Ri; i = i+1; until the end of the file Trong b ác run c tr n l i 43 Tr n run Tr ng h p c bi t: s s r < M Ta c th d nh trang c a b m cho m i run v d nh ch b nh l i ch a m t trang c a k t qu xu t Gi i thu t ph n tr n run nh sau: ead one block of each of the N files Ri into a buffer page in memory; repeat choose the first record (in sort order) among all buffer pages; write the tuple to the output, and delete it from the buffer page; if the buffer page of any run Ri is empty and not end-of-file(Ri) then read the next block of Ri into the buffer page; until all buffer pages are empty 44 Tr n run ng h p t ng qu Tác v tr n s khái quát hóa c a phép tr n hai ng (two-way merge) c dùng b i gi i thu t s p th t n i b ng ph ng pháp tr n Nó tr n N run, ó c g i tr n nhi u ng (n-way merge) Tr ng h p t ng quát: V t ng quát, n u t p tin l n h n s c ch a c a b m N>M khơng th dành m t trang b m cho m i run b c tr n Trong tr ng h p này, s tr n ph i tr i qua nhi u chuy n (passes) Vì ch có M-1 trang c a b m dành cho u vào, s tr n có th ti p nh n M-1 runs nh u vào 45 Tr n run [tr ng h p t ng qu t] tt Chuy n tr n u tiên l m vi c nh sau: M-1 run u tiên c tr n l i th nh m t run cho chuy n k ti p R i th M-1 runs s c tr n theo cách t ng t c th cho n t t c run u tiên u c gi i quy t T i i m này, t ng s run c gi m i m t th a s M-1 N u s run ã c gi m i v n M, m t chuy n n as c th c thi v i run c t o b i chuy n u tiên làm u vào M i chuy n làm gi m t ng s run m t th a s M – Các chuy n c l p l i nhi u nh c n thi t cho n t ng s run nh h n M; chuy n cu i s t o k t qu m t t p tin có th t 46 M t thí d c a th t ngo i b ng p.p tr n s : i) m t m u tin chi m v a m t kh i ii) b m chi m trang Trong giai o n tr n, hai trang c dùng làm m t trang c dùng ch a k t qu u vào Giai o n tr n òi h i hai chuy n 47 a 19 d 31 a 19 d 31 c 33 b 14 e 16 r 16 d 21 m3 p d a 14 a b c d e b 14 c 33 e 16 d 31 m r 16 a 14 d d 21 m3 p r 16 a 14 d 17 p T o run 19 14 33 31 16 tr n pass a 14 a 19 b 14 c 33 d d 21 d 31 e 16 g 24 m3 p r 16 tr n pass 48 ph c t p c a x p th t ngo i H y tính s truy t kh i (block accesses) c a gi i thu t s p th t ngo i b ng ph ng pháp tr n br : t ng s kh i c a t p tin Trong giai o n t o run, m t kh i m t t ng s 2br truy t kh i T ng s run ban u T ng s chuy n tr n: c c ghi, em l i br/M log M-1(br/M) Trong m i chuy n tr n, t ng kh i c a t p tin l n ghi m t l n c cm t 49 ph c t p c a x p th t ngo i T ng s truy t a cho gi i thu t s p th t ngo i b ng ph ng pháp tr n là: 2br + 2br logM-1(br/M) t o run = 2br( logM-1 (br/M) +1) chuy n tr n 50 Tìm ki m tu n t Ph ng pháp n gi n nh t tìm ki m l u tr m u tìm ki m m t m u t uy t qua tin m t m ng toàn b m ng m t cách tu n t type node = record key, info: integer end; var a: array [0 maxN] of node; N: integer; procedure initialize; begin N: = end; function seq_search (v: integer, x: integer): integer; begin a[N+1].key: = v; /*sentinel */ if xr); if v = a[x].key then binarysearch: = x else binarysearch: = N+1 end; Ph 55 ph c t p c a gi i thu t tìm ki m chia i H th c truy h i c a gi i thu t n y l : CN CN/2 + Tính ch t: T m ki m chia khơng bao gi ịi h i nhi u h n lgN + so sánh cho m t s tìm ki m thành công hay không thành công 56 ... òi h i n so sánh nh n úng v trí th nh t H n n a, sau ó phân r ng nên o n bên trái r ng và phân o n bên ph i g m n – ph n t Do ó v i l n phân ho ch k , ph n t th hai s òi h i n-1 so sánh nh n... th t hai n a t p tin N chi phí c a vi c xét t ng ph n t phân ho ch l n u T ch ng 1, vi c gi i h th c truy h i ã a n l i gi i: CN N lgN 18 Phân tích ph c t p: tr ng h p x u nh t M t tr ng h p x... quicksort2(left,k-1); quicksort2(k+1,right) end; end; 17 Phân tích ph c t p: tr ng h p t t nh t Tr ng h p t t nh t x y v i Quicksort l m i l n phân ho ch chia t p tin làm hai ph n b ng i u làm cho