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