CHUYÊN ĐỀ BỒI DƯỠNG HSG TIN HỌC THUẬT TOÁN SẮP XẾP VÀ TÌM KIẾM

39 1.2K 3
CHUYÊN ĐỀ BỒI DƯỠNG HSG TIN HỌC THUẬT TOÁN SẮP XẾP VÀ TÌM KIẾM

Đ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

Là tài liệu được trình bày từ cơ bản đến nâng cao về ứng dụng sắp xếp và tìm kiếm trong việc giải các bài toán thi học sinh giỏi Tin học. Có các bài tập minh họa và hướng dẫn cách giải từ đề thi HSG tỉnh, Quốc gia các năm

CHUN ĐỀ TÌM KIẾM SẮP XẾP Thuật tốn tìm nhị phân mảng - Thuật tốn tìm kiếm nhị phân tìm phần tử có giá trị X mảng xếp cách hiệu thời gian O(logn) Thuật toán sau: - Giả sử cần tìm đoạn a[L], a[L + 1],.a[H] với giá trị cần tìm kiếm X, trước hết ta xem xét với giá trị phần tử nằm dãy, mid = (L + H) div +Nếu a[mid] < X có nghĩa đoạn từ a[L] tới a[mid] chứa phần tử có giá trị < X, ta tiến hành tìm kiếm tiếp với đoạn từ a[mid + 1] đến a[H] +Nếu a[mid] > X có nghĩa đoạn từ a[mid] tới a[H] chứa phần tử có giá trị > X, ta tiến hành tìm kiếm tiếp với đoạn từ a[L] đến a[mid -1] + Nếu a[mid] = X việc tìm kiếm thành cơng (kết thúc q trình tìm kiếm) - Quá trình tìm kiếm thất bại đến bước đó, đoạn tìm kiếm rỗng Khi (L>H) Hàm viết sau : Function timnhiphan(x:longint;a:mang):integer; var d,c,tam:longint; begin d:=1; c:=n; timnhiphan:=0; while (d khố “chốt” Tiếp tục xếp kiểu với đoạn con, ta đoạn cho xếp theo chiều tăng dần khoá Procedure qsort(d,c:longint; var e:mang); var i,j,k,tam:longint; begin if (d>c) then exit; i:=d; j:=c; k:=e[(i+j) div 2]; repeat while (e[i]k) j:=j-1; if (ij; if(d

Ngày đăng: 24/09/2019, 22:11

Từ khóa liên quan

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

Tài liệu liên quan