Chương 4 Tìm kiếm docx

40 270 0
Chương 4 Tìm kiếm docx

Đ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

       !"#$%  &' (  )*  +%&' *')*  ,)-$ ."  /   !"#$% 0&1$23" 45+ 6789:7895;&&+(< 79=>2?+=&2@A;& !B!"755!B3!)1$57C !"789<".D7)"3"3 789<BEF35$ G3" 45+6789H3 "!I+789 D DJDK D D5C !"697L"$'0M     !"#$% 0"E1$23" 4 569!)5$<<"!) 5$DDKD5ANODM 0H> %P"334 Q 792@5!)5$OD<FR75.  7930%&K%%S&F Q 0T'2@3"55$2?D<EF3  030&%&K%%S&FUR3'5 =D&T>'V&J&2W%&!)DH3"69< EF3 52W%&  X  &JYZ%K[&K$F %K$!\  U3 7@H3W 7=  ]^4G_7J&`2@aT<FJ F9%"%5$ HI5$ a1$2@!"2@<"I 792@"&8"C7L 2@ 3$T'  b  &JYZ%K[&K$F %K$!\  @&64 cdefdcdghZ<<D\ ii^7J& OjklmOD ii5$!"#L' nFKZkmoOD\#"llj /iiT'$'0 SZOOl\!K&!pii0T' KF%K!K&!j cdefdcdghZ<<D\ ii^7J& OjklmOD ii5$!"#L' nFKZkmoOD\#"llj /iiT'$'0 SZOOl\!K&!pii0T' KF%K!K&!j  q  &JYZ%K[&K$F %K$!\  @&6Z@&67>[&'!" #$%FV \4 "#Kr#K[&'Z%!&"#KrS!%<KFKKs'KK\ t SZS!%OOfUU\ !K&!fUUj KF%K SZS!%uKFKKOOK\!K&!S!%j KF%K !K&!#K[&'ZS!%uKD<K\j v "#Kr#K[&'Z%!&"#KrS!%<KFKKs'KK\ t SZS!%OOfUU\ !K&!fUUj KF%K SZS!%uKFKKOOK\!K&!S!%j KF%K !K&!#K[&'ZS!%uKD<K\j v  w  &JYZ%K[&K$F %K$!\  ,@&64 !B98T4  Oj !B9DT&T4 $D OxZ\j !&2 2 OxZ\  y  )*ZG$!' cK!\  U3 0#z  ]^4 Q {L'5$7L79%_D K"aYZ|#J "C@#J\ Q @%}#L'5$7$D.F3FH3!5$^~$ #L'%PF3HIOZFl!\i Q  %P R &DO9FN< &D•< . %P79Y> HIF<<  &Du<. %P79Y> HI lHI! Q e&! %P#`T'5$"C #L'7$D.!^V!:  p  )*ZG$!' cK!\  @&64 Ggh€cdghZ<<D\ 2lOj!Ojii^7J& 2nFKZF•O!\#"ii  tOZFl!\ijii(•%8~$ SD•kmK!O KF%KSDukmKFOlj KF%K!K&!j v 2/!K&!pjii0T' Ggh€cdghZ<<D\ 2lOj!Ojii^7J& 2nFKZF•O!\#"ii  tOZFl!\ijii(•%8~$ SD•kmK!O KF%KSDukmKFOlj KF%K!K&!j v 2/!K&!pjii0T' [...]... kiếm 15 4. 2.1 Định nghĩa  Ví dụ: 34 66 17 25 50 71 68 75 16 4. 2.1 Định nghĩa  Bài tập tại lớp – Vẽ 4 cây nhị phân tìm kiếm với các giá trị sau: 3, 4, 6, 8, 9, 10, 14, 15, 17 – Vẽ cây nhị phân tìm kiếm cân đối cho các giá trị trên với số nút rỗng là ít nhất 17 4. 2.2 Các phép toán  Phép tìm kiếm  Phép chèn thêm một nút  Phép gỡ loại bỏ một nút 18 4. 2.2.1... thì tiến hành ở nhánh con bên trái hoặc bên phải để đảm bảo tính chất của cây nhị phân tìm kiếm 22 4. 2.2.2 Phép thêm một nút  Ví dụ: Thêm các nút 5, 2, 4, 6, 1, 7, 3 vào một cây rỗng theo đúng thứ tự  Qua từng bước thêm, ta có cây sau: 5 2 1 6 4 7 3 23 4. 2.2.2 Phép thêm một nút void chen(int e, NODE **root) void chen(int e, NODE **root) { { NODE *tam; NODE *tam;... tìm kiếm nhị phân) 13 4. 2 Cây nhị phân tìm kiếm  Việc tổ chức tập hợp khóa theo cấu trúc danh sách thì phép tìm kiếm nói chung là chi phí cao, nếu khóa đã sắp xếp thì phép tìm kiếm nhị phân hiệu quả hơn nhưng bất tiện trong việc thêm, bớt phần tử  Cấu trúc cây nhị phân tìm kiếm được xây dựng để khắc phục các nhược điểm trên 14 4.2.1 Định nghĩa ... else else 33 4. 2.2.3 Phép xóa một nút Thủ tục xóa if ((*root)->left == NULL) (*root) = (*root)->right; if ((*root)->left == NULL) (*root) = (*root)->right; else else if ((*root)->right==NULL) (*root) = (*root)->left; if ((*root)->right==NULL) (*root) = (*root)->left; else (*root)->element = xoacuctrai(&(*root)->right); else (*root)->element = xoacuctrai(&(*root)->right); } } 34 4.3 Cây nhị... tam = new NODE; tam->element = e; tam->element = e; tam->left = NULL; tam->left = NULL; tam->right = NULL; tam->right = NULL; if (*root == NULL) *root = tam; if (*root == NULL) *root = tam; else else 24 4.2.2.2 Phép thêm một nút if (tam->element < (*root)->element) if (tam->element < (*root)->element) if ((*root)->left) chen(e, &(*root)->left); if ((*root)->left) chen(e, &(*root)->left); else (*root)->left... chen(e, &(*root)->right); else (*root)->right = tam; else (*root)->right = tam; else cout element; k=(*root)->element; (*root) = (*root)->right; (*root) = (*root)->right; return k; return k; } } else return xoacuctrai(&(*root)->left); else return xoacuctrai(&(*root)->left); } } 32 4. 2.2.3... Return loc; 4. 1.2 Tìm kiếm nhị phân (Binary Serching)  Đánh giá giải thuật: – – – Trường hợp tốt nhất Tmin =1, tìm được ngay lần đầu tiên Trường hợp xấu nhất Tmax = k+w[n/2k) Chứng minh được Ttb = O(log2n) Trong tất cả các giải thuật tìm kiếm, tìm kiếm nhị phân là nhanh nhất, nhưng nó có nhược điểm là dãy phải được sắp xếp 12 Bài tập về nhà B1 Viết chương. .. timdequy(x,root->left); if (x < root->element) timdequy(x,root->left); else if (x>root->element) timdequy (x,root->right); else if (x>root->element) timdequy (x,root->right); else timthay =1; else timthay =1; } } 20 4. 2.2.1 Phép tìm kiếm Thủ tục không đêê quy int tim(int x,NODE *root) int tim(int x,NODE *root) { { int timthay =0; int timthay =0; while ((root !=NULL) && (!timthay)) while ((root !=NULL) && (!timthay)) . &JYZ%K[&K$F %K$!  ,@&6 4 !B98T 4   Oj !B9DT&T 4  $D OxZj !&2 2 OxZ  y  )*ZG$!' cK!  U3.  !"#$% 0"E1$23" 4 569!)5$<<"!) 5$DDKD5ANODM 0H> %P"33 4 Q 792@5!)5$OD<FR75. . F•! thenF"OpiiF"a$•%8a1$ ii5$J elseOZFl!ij ifD•km thenF"OhGgh€cdghZF<<<D elseSDukm thenF"OhGgh€cdghZl<!<<D elseF"Oj G 4 ReturnF"j    )*ZG$!' cK!  ,@&6 4 Q !B98TO<79$' FJ7J&V Q !B9DT&T$DOlnki Q a792OxZF" !"T@@&6

Ngày đăng: 03/04/2014, 01:20

Mục lục

  • CHƯƠNG 4- TÌM KIẾM

  • CHƯƠNG 4. TÌM KIẾM

  • 4.1 Các phương pháp tìm kiếm trong danh sách

  • 4.1.1 Tìm kiếm tuần tự (sequential searching)

  • 4.1.2. Tìm kiếm nhị phân (Binary Serching)

  • Bài tập về nhà

  • 4.2. Cây nhị phân tìm kiếm

  • 4.2.1 Định nghĩa

  • 4.2.2 Các phép toán

  • 4.2.2.1 Phép tìm kiếm

  • 4.2.2.2 Phép thêm một nút

  • 4.2.2.3 Phép xóa một nút

  • 4.3 Cây nhị phân cân đối (AVL)

  • Bài tập

Tài liệu cùng người dùng

Tài liệu liên quan