Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
155,5 KB
Nội dung
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA TRƯỜNG THPT CHUYÊN LAM SƠN SÁNG KIẾN KINH NGHIỆM VẬN DỤNG THUẬT TOÁN TÌM KIẾM NHỊ PHÂN GIẢI MỘT SỐ BÀI TẬP TIN HỌC Người thực hiện: Trịnh Hồng Nam Chức vụ: Giáo viên SKKN thuộc lĩnh vực: Tin học THANH HÓA NĂM 2016 MỤC LỤC MỤC LỤC .2 ĐẶT VẤN ĐỀ .3 I Lý chọn đề tài II Mục đích nghiên cứu III Phạm vi đề tài IV Phương pháp nghiên cứu .3 GIẢI QUYẾT VẤN ĐỀ I Lý thuyết 1.2.1 Nhắc lại thuật toán 1.2.2 Độ phức tạp II Bài tập Phần tập 1.2.1 Phần nâng cao .9 LỜI KẾT .17 TÀI LIỆU THAM KHẢO 18 ĐẶT VẤN ĐỀ I Lý chọn đề tài Tìm kiếm việc thường xảy sống Tìm kiếm thao tác móng cho nhiều tác vụ tính toán Thuật toán tìm kiếm nhị phân thuật toán tìm kiếm quan trọng tin học Thuật toán gọi thuật toán chặt nhị phân hay thuật toán chia đôi áp dụng nhiều giải toán, làm giảm nhiều thời gian tìm kiếm, giúp chương trình chạy nhanh Tuy nhiên, nhận thấy thuật toán chưa áp dụng rộng rãi nên lựa chọn đề tài “Vận dụng thuật toán tìm kiếm nhị phân giải số tập Tin học” để tìm hiểu phát triển thuật toán phổ biến II Mục đích nghiên cứu Trong phạm vi đề tài muốn nghiên cứu số tập áp dụng thuật toán tìm kiếm nhị phân hiệu thuật toán nâng lên rõ rệt, nhằm giúp học sinh hình thành kỹ giải toán tin học rèn luyện tư thuật toán từ rèn luyện tư lập trình Cũng qua đề tài, muốn đồng nghiệp trao đổi, trau dồi chuyên môn nhằm góp phần nâng cao trình độ chuyên môn nghiệp vụ khả mở rộng kiến thức Với thân nghiên cứu đề tài sáng kiến kinh nghiệm hội tốt để nghiên cứu khoa học làm quen với phương pháp làm khoa học phạm vi hẹp hy vọng với nổ lực thân giúp đỡ đồng nghiệp có đề tài khoa học tốt, lý thú hiệu III Phạm vi đề tài Đề tài áp dụng học sinh giỏi với nhiệm vụ chủ yếu ôn thi học sinh giỏi bồi dưỡng kiến thức cho học sinh yêu thích môn tin IV Phương pháp nghiên cứu Để hoàn thành đề tài này, tiến hành áp dụng số phương pháp nghiên cứu sau: Phương pháp đặt vấn đề - giải vấn đề, Phương pháp phân tích tổng hợp,Phương pháp so sánh đối chiếu, Phương pháp thực nghiệm GIẢI QUYẾT VẤN ĐỀ I Lý thuyết 1.2.1 Nhắc lại thuật toán Thuật toán tìm kiếm nhị phân liên quan đến toán sau: “ Cho mảng n phần tử tăng dần phần tử x Tìm xem x có mảng hay không” Yêu cầu: Thuật toán dùng dãy số xếp đơn điệu theo thứ tự tăng giảm dần Tư tưởng thuật toán: chọn phần tử vị trí làm chốt, chia dãy thành phần có kích thước nhỏ Sau so sánh phần tử cần tìm x với chốt, x lớn chốt tìm nửa sau dãy, x nhỏ chốt tìm nửa trước dãy (áp dụng với dãy tăng), trình tiếp tục tìm x dãy chia không phần tử Ví dụ: Cho dãy số: A={-6,1,3,5,8,10,14,16,19,21 }; x=5; dãy gồm 10 phần tử Gọi phần tử chốt k, ban đầu k=8 Bước 1: k=8, so sánh x với k, xk ta tìm kiếm x nửa sau {3,5,8} Bước 3: k=5, so sánh x với k, x=k ta tìm x kết thúc Procedure TKNP (x: Item, a1,a2, ,an: Item); Begin d := 1; {d điểm đầu đoạn tìm kiếm} c := n; {c điểm cuối đoạn tìm kiếm} tim_thay:=false; while (d