1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương 3: Phân tích độ phức tạp một số giải thuật trên cấu trúc dữ liệu

52 15 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 1,02 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tìm kiếm tuần tự có thể được thực hiện thông qua việc dùng danh sách liên kết biểu diễn các mẫu tin trong tập tin. Một lợi điểm: Để làm cho danh sách liên kết mà giúp việc cho việc tìm kiếm nhanh chóng hơn.

Trang 1

Ch ng 3

Ph n t#ch ph c t p m t s

gi i thu t tr%n c u tr'c d li u

Trang 3

1.T)m ki m tu n t tr%n danh s ch li%n k t

 T)m ki m tu n t sequential search) c th c th c

hi n th ng qua vi c d ng danh s ch li%n k t (linked

list) bi u di n c c m u tin trong t p tin.

 M t l i i m: d l,m cho danh s ch li%n k t c- th t

m, gi'p cho vi c t)m ki m nhanh ch-ng h n.

Trang 4

3 4 7 21

Z

T)m ki m tu n t tr%n m t danh s ch li%n k t

c-th t

Qui c: z l, n't gi trong danh s+ch li%n k t

type link =  node

node = record key, info: integer;

next: link

end;

var head, t, z: link;

i: integer;

Trang 5

repeat t:= t.next until v < = t.key;

if v = t.key then listsearch:= t

else listsearch: = z

end;

Trang 6

Gi i thu t t)m ki m tu n t tr%n danh s ch li%n

function listinsert (v: integer; t: link): link;

begin

z.key: = v;

while t.next.key < v do t: = t.next;

new(x); x.next: = t.key; t.next: = x;

Trang 7

b ng nhau (1/(N+1)) c t)m th y v tr# sau c ng c a

qu+ tr)nh t)m ki m, s l n so s+nh trung b)nh s l,:

(1 + 2+ 1+ (N+1))/(N+1) = (N+2)(N+1)/(2(N+1)) = (N+2)/2.

Trang 8

Trong m t c.y t m ki m nh ph.n binary search tree),

t t c c+c m u tin v i kh-a nh h n kh-a t i n't ang x2t

th) c y con b%n tr+i c a n't v,

c+c m u tin v i kh-a l n h n hay b ng kh-a t i n't ang

x2t th) c y con b%n ph i c a n't

Trang 11

x.1: = z; x.r: = z; /* create a new node */

if v < p key then p.1: = x /* p denotes the parent of

the new node */

else p.r: = x;

tree p.r: = x

end

Trang 12

m t danh s+ch c+c kh-a c- th t

Trang 13

T c v t)m ki m

type link =  node;

node = record key, info: integer;

l, r: link end;

var t, head, z: link;

function treesearch (v: integer, x: link): link; /* search the node with

the key v in the binary search tree x */

Trang 15

l n l t ch a k-1 n't v, N-k.

Trang 18

L

Trang 19

The following procedure is to delete the node t from the binarytree x.

procedure treedelete (t, x: link);

if t.r = z then /* the node t has no right child */

x: = x.1 /* replace the deleted node with the left child of

t */

else if t.r.1 = then /* the right chile of t has no left child */begin x: = x.r; x.1: = t.1 end /* replace the deleted node with its right child */

Trang 20

begin

e: = x.r;

while c.1.1 <> z do c: = x.1; /* find the leftmost node

of the right subtree */

x: = c.1; /* x denotes the node that will replace the

if t.key < p.key then p.1: = x /* connect x to the parent

of the deleted node */

else p.r: = x;

end;

Trang 23

Thi c ng h,ng i c- u ti%n

c-u ti%n:

gi n khi th%m v,o m t ph n t m i nh ng khi x-a b ph n t

c-u ti%n l n nh t ra kh i h,ng i th) ph c t p s cao.)

2 D ng c u tr'c d li u heap

Trang 24

C+c tr kh-a trong c u tr'c c y th a i u ki n heap nh sau:

Kh-a t i m i n't c n ph i l n h n hay b ng) c+c kh-a

hai con c a n- (n u c-) i u n,y h,m 6 r ng tr kh-a l n

nh t n't r

Trang 29

T c v th%m v,o

procedure upheap(k:integer)

var v: integer;

begin

v :=a[k]; a[0]:= maxint;

while a[k div 2] <= v do begin a[k]:= a[k div 2 ]; k:=k div 2 end;

a[k]:= v end;

procedure insert(v:integer);

begin

N:= N+1; a[N] := v ; unheap(N) end;

Trang 31

T c v x a b ph n t l n nh t

T c v x a s l,m gi m k#ch th c c a heap m t n v ,

t c n l,m gi m N m t n v

Nh ng ph n t l n nh t c a[1] s c x a b v, cthay th b ng ph n t m, 3 v tr# a[N] N u tr kh a t in't r qu nh , n ph i c di chuy n xu ng th a m3n

Trang 32

a[1] := a[N]; N := N-1;

downheap(1);

end;

Trang 35

Th a s 2 l, do t c v downheap m, c n hai thao t c so

s nh trong v5ng l p trong v, c+c thao t+c kh+c ch 5i h ilgN l n so s+nh

Trang 37

1

9 8

3

1 5

9 8

3

2

5 1

Trang 38

9 8

3

2

8 5

3

2 1

5 3

Trang 42

V# d

K#ch th c b ng b m = 101 Gi s m i tr kh-a g m 4 k6

t N u kh- :AKEY; c m3 h-a th,nh m t m3 g m 5bit, ta c- th coi kh-a y l, m t tr,ng s nh ph n nh sau:

Trang 43

m m t kh-a d,i

N u kh-a l, m t d5ng k6 t kh+ d,i th) ch'ng ta v n c- tht#nh b ng m t h,m b m m, bi n i kh-a t ng k6 t m t

K thu t - th hi n b ng gi i thu t l p nh sau:

Trang 44

Ph ng ph p gi i quy t ng : X u ri%ng

Separate chainin

Trong k thu t b m, ch'ng ta ph i quy t nh d ng c+ch

n,o gi i quy t v n hai kh-a kh+c nhau b m th,nh

type link =  node;

node = record key, info: integer;

next: link end;

var heads: array [0 M] of link; t, x: link;

Trang 46

Key: A S E A R C H I N G E X A M P L E

Hash: 1 8 5 1 7 3 8 9 3 7 5 2 1 2 5 1 5

A A A L

M X

C

E

E P

G R

H S

I

Trang 47

Ph ng ph p gi i quy t ng : D5 tuy n t#nh

Ph ng ph+p x u ri%ng c- th +p d ng trong tr ng h p

M < N M: k#ch th c b ng b m, N: s tr kh-a th

c-C- m t s ph ng ph+p l u N m u tin trong b ng b m k#ch th c M m, M > N, nh v,o nh ng v tr# tr ng trong

c-b ng c-b m gi i quy t ng Nh ng ph ng ph+p nh

v y c g i l, k thu t b m a ch m open addressing

hashing

Ph ng ph+p a ch m n gi n nh t l, ph ng ph+pd/ tuy n t1nh linear probing : m i khi c- ng th) d5 n

v tr# k ti p trong b ng b m, t c l, so s+nh tr kh-a c n t)m

v i tr kh-a t i m u tin

Trang 51

Key: A S E A R C H I N G E X A M P L E

Hash: 1 0 5 1 18 3 8 9 14 7 5 5 1 13 16 12 5

R P

N M L E X I H G E E A C A A S

Trang 52

= 1/ 1- 2 v i = N/M

N u = 2/3, ta c k t qu 5 b c d5

Ngày đăng: 09/05/2021, 22:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w