Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
171,5 KB
Nội dung
ỨNG DỤNG PHƯƠNG PHÁP TÌM KIẾM TRONG VIỆC GIẢI CÁC BÀI TOÁN THI HỌC SINH GIỎI MÔN TIN HỌC MÃ: TI17 CƠ SỞ LÝ THUYẾT 1.1 Phát biểu toán Cho dãy gồm n ghi r[1 n] Mỗi ghi r[i] (1 ≤ i ≤ n) tương ứng với khóa k[i] Hãy tìm ghi có giá trị khóa X cho trước X gọi khóa tìm kiếm Công việc tìm kiếm hoàn thành hai tình sau sảy ra: • Tìm ghi có khóa tương ứng X, lúc phép tìm kiếm thành công • Không tìm ghi có khóa tương ứng X, lúc phép tìm kiếm thất bại 1.2 Phương pháp tìm kiếm 1.2.1 Nội dung thuật toán Bắt đầu từ ghi đầu tiên, so sánh khóa tìm kiếm với khóa tương ứng ghi danh sách, tìm thấy ghi mong muốn duyệt hết danh sách mà không thấy 1.2.2 Nội dung chương trình * Code ngôn ngữ lập trình PASCAL Function TK_tuantu(X: Key): integer; var i: Integer; Begin for i:=1 to n if (r[i] = X) then exit(i);{tìm thấy X trả vị trí nó} exit(0); {không tìm thấy X trả vị trí 0} End; * Code ngôn ngữ lập trình C++ int TK_tuantu(int X) { for (int i = 1; i X nghĩa đoạn K[L Mid] chứa toàn khóa > X ta tiến hành tìm kiếm X đoạn K[R Mid - 1] • Nếu K[Mid] = X tìm kiếm thành công (kết thúc trình tìm kiếm) Quá trình tìm kiếm thất bại bước đoạn tìm kiếm rỗng tức L > R 1.3.2 Nội dung chương trình * Code ngôn ngữ lập trình PASCAL Function TK_NhiPhan(X: Key): integer; var L,R,Mid:integer; Begin L := 1; R := N; While (L [...]... thì hi vọng tìm được giá trị Mid nhỏ hơn nữa bằng cách giảm giá trị R = Mid – 1 Nếu check(Mid) = false thì giá trị Mid là quá nhỏ nên phải tăng giá trị này lên bằng cách thay đổi giá trị L = Mid + 1 3 Kết luận Nhìn chung các bài toán được ứng dụng phương pháp tìm kiếm nhị phân thường đi cặp với thuật toán sắp xếp, và hầu như các bài toán đều là những bài toán ở mức độ không khó về mặt giải thuật Tuy... thứ hai chứa các số là dãy b (|bi| c = w – 1 - Vấn đề cần giải quyết bây giờ là trong thủ tục DFS(1) thì điều kiện để đi từ đỉnh u -> v là gì? - Câu hỏi trên sẽ được giải đáp nếu trả lời được