
5 câu hỏi
Với một dãy chưa được sắp xếp theo thứ tự, ta không có đủ cơ sở để loại bỏ một nửa dãy số ra khỏi phạm vi tìm kiếm sau khi so sánh phần tử giữa với giá trị x cần tìm.
Với dãy a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] và khoá r = 1, thuật toán tìm kiếm tuần tự chỉ mất một lượt so sánh để tìm ra x trong dãy a, còn thuật toán tìm kiếm nhị phân phải mất ba lần chia đôi dãy mới thu hẹp được phạm vi tìm kiếm về phần tử 1 ở vị trí ngoài cùng bên trái của a.
Áp dụng tìm kiếm tuần tự, tuy nhiên điều kiện “bằng” cần phải tính.
Chương trình mẫu:

Với mỗi chỉ số j, tồn tại tối đa một chỉ số i để h[j] – h[i] = d. Điều kiện h[j] - h[i] = d tương đương với h[i] = h[j] – d. Đặt h[j] – d = x, em có thê quy về bài toán tìm kiếm giá trị x trên dãy h. Sử dụng một biến kiểu boolean để ghi nhận kết quả tìm kiếm cho mỗi chỉ số j, em có thể tính tổng số lượng chỉ số j mà tồn tại i thoả mãn h[j] – h[i] = d, cũng chính là số cặp cần tìm.

Áp dụng lát cắt danh sách, việc cài đặt khá đơn giản.
S = input ()
T = input ()
for i in range (len (S) - len (T) + 1):
if T == S[i: i+len (T)]:
print (i+1, end = " ")
Mở rộng: Trong thực tế, thuật toán trên chưa đủ hiệu quả, vì việc so sánh hai xấu có độ phức tạp là len(T). Vậy độ phức tạp của thuật toán trên là len(S) x len(T) trong trường hợp xấu nhất. Áp dụng tư tưởng làm mịn dần thuật toán, người ta đã phát minh ra các thuật toán so khớp xâu:
– Hash (thường gặp trong mật mã học – cryptography).
– KMP (tận dụng những kí tự đã được so sánh trước đó để không phải so sánh lại từ đầu).
- Z function.
Em có thể tìm đọc để tăng thêm niềm đam mê với thuật toán.




![[Năm 2022] Đề thi thử môn Vật lí THPT Quốc gia có lời giải - Đề số 21](/_next/image?url=https%3A%2F%2Fvideo.vietjack.com%2Fupload%2Fimages%2Fvj-image%2Fimage-3izficdefgfoel0s9j8s-1786772791.jpg&w=3840&q=75)
![[Năm 2022] Đề thi thử môn Vật lí THPT Quốc gia có lời giải - Đề số 20](/_next/image?url=https%3A%2F%2Fvideo.vietjack.com%2Fupload%2Fimages%2Fvj-image%2Fimage-emy0gtcksawvorajezvv-1786772460.jpg&w=3840&q=75)




















