Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Vì tìm kiếm nhị phân cần danh sách đã sắp xếp để biết chắc phần tử cần tìm nằm ở bên trái hay bên phải. Nếu không sắp xếp, ta không thể loại bỏ nửa danh sách một cách chính xác
Sự khác biệt cơ bản nhất là thuật toán tìm kiếm nhị phân yêu cầu dữ liệu phải được sắp xếp, trong khi thuật toán tìm kiếm tuần tự không có yêu cầu này. Ngoài ra, cách thức tìm kiếm của thuật toán nhị phân là chia để trị, còn thuật toán tuần tự là duyệt lần lượt từng phần tử
Tìm kiếm tuần tự duyệt từng phần tử một, không cần sắp xếp. Tìm kiếm nhị phân chia đôi danh sách mỗi bước, cần sắp xếp trước.
đây nhé
Dãy ban đầu: [7.5, 9.0, 6.0, 8.5, 7.0]
- Lượt 1: so sánh dần, đổi chỗ → [7.5, 6.0, 8.5, 7.0, 9.0]
- Lượt 2: tiếp tục đổi chỗ → [6.0, 7.5, 7.0, 8.5, 9.0]
- Lượt 3: tiếp tục → [6.0, 7.0, 7.5, 8.5, 9.0]
- Lượt 4: dãy đã đúng thứ tự.
Kết quả: [6.0, 7.0, 7.5, 8.5, 9.0]
a) Đúng
b) Sai. Nếu mã số cần tìm là 2350 mà ở giữa là 3000, thì ta phải tìm tiếp ở nửa bên trái (nhỏ hơn), chứ không phải nửa bên phải.
c) Đúng
d) Đúng
Đáp án : 1. Phần tử có giá trị nhỏ nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.
Thuật toán tìm kiếm nhị phân được thực hiện trên một danh sách đã được (1) sắp xếp. Bắt đầu từ vị trí ở (2) giữa của danh sách. Tại mỗi bước, ta so sánh giá trị cần tìm với giá trị ở vị trí đó. Nếu giá trị cần tìm lớn hơn, ta tìm ở (3) nửa phải của danh sách. Nếu nhỏ hơn, ta tìm ở (4) nửa trái của danh sách.
Thuật toán tìm kiếm nhị phân được mô tả bằng ngôn ngữ tự nhiên:
- Bước 1: Xác định danh sách (mảng) đã được sắp xếp theo thứ tự tăng dần hoặc giảm dần.
- Bước 2: Đặt hai biến trái và phải lần lượt là chỉ số phần tử đầu và phần tử cuối của danh sách.
- Bước 3: Tính chỉ số giữa = (trái + phải) / 2 (lấy phần nguyên).
- Bước 4: So sánh giá trị cần tìm với phần tử ở vị trí giữa:
+ Nếu bằng, thì kết thúc và trả về vị trí giữa.
+ Nếu nhỏ hơn, thì cập nhật phải = giữa - 1 để tiếp tục tìm trong nửa bên trái.
+ Nếu lớn hơn, thì cập nhật trái = giữa + 1 để tiếp tục tìm trong nửa bên phải.
- Bước 5: Lặp lại bước 3 và bước 4 cho đến khi tìm thấy hoặc khi trái > phải (nghĩa là không có phần tử cần tìm).
Việc chia bài toán lớn thành những bài toán nhỏ giúp thuật toán sắp xếp dễ hiểu hơn, dễ thực hiện hơn và hiệu quả hơn. Khi giải quyết từng phần nhỏ, ta sắp xếp nhanh và chính xác, rồi ghép lại sẽ được kết quả đúng cho cả bài toán.
Việc chia một bài toán lớn thành những bài toán nhỏ hơn giúp các thuật toán sắp xếp hiệu quả và dễ hiểu hơn vì:
- Dễ giải quyết hơn: Bài toán sắp xếp cả một dãy dài rất phức tạp. Nếu chia thành những phần nhỏ, ta chỉ cần xử lý từng phần, đơn giản hơn nhiều.
- Tiết kiệm thời gian: Nhiều thuật toán (như sắp xếp nhanh, sắp xếp trộn) dựa trên ý tưởng chia nhỏ dãy, sắp xếp các phần, rồi ghép lại. Cách này làm giảm số lần so sánh, nên nhanh hơn.
- Dễ hiểu và dễ thực hiện: Khi chia nhỏ, thuật toán trở nên rõ ràng từng bước. Người học, người lập trình dễ theo dõi và kiểm tra kết quả hơn.
- Tái sử dụng cách giải: Các bài toán nhỏ thường có cùng dạng như bài toán ban đầu. Ta có thể áp dụng lại chính thuật toán ban đầu (gọi là “đệ quy”), nên gọn và logic hơn.
Để tìm thành phố Ninh Bình trong danh sách bằng thuật toán tìm kiếm tuần tự, chúng ta sẽ thực hiện các bước sau:
Thuật toán tìm kiếm tuần tự cần thực hiện: 3 bước để tìm thấy thành phố Ninh Bình.
Đáp án + giải thích các bước giải :
Thuật toán tìm kiếm tuần tự cần thực hiện bao nhiêu bước để tìm thấy Thành phố Huế là :
Bước 1: So sánh phần tử đầu tiên trong danh sách ( Hà Nội ) với Thành phố Huế.
Hà Nội ≠ Huế, vì vậy thuật toán không dừng lại mà tiếp tục tìm kiếm phần tử tiếp theo trong danh sách.
Bước 2: So sánh phần tử thứ hai trong danh sách ( Hải Phòng ) với Thành phố Huế.
Hải Phòng ≠ Huế, vì vậy thuật toán tiếp tục so sánh với phần tử tiếp theo.
Bước 3: So sánh phần tử thứ ba trong danh sách ( Nam Định ) với Thành phố Huế.
Nam Định ≠ Huế, tiếp tục kiểm tra phần tử tiếp theo.
Bước 4: So sánh phần tử thứ tư trong danh sách ( Huế ) với Thành phố Huế.
Huế = Huế, thuật toán tìm thấy phần tử cần tìm, và dừng lại.
⇒ Thuật toán tìm kiếm tuần tự cần 4 bước để tìm thấy Thành phố Huế.
Tham khảo ạ.
Hyeee.
Heyyeyey
Cần 2 bước để tìm thấy thành phố Ninh Bình
Thuật toán tìm kiếm tuần tự cần 3 bước để tìm thành phố Ninh Bình
• bước 1: so sánh Hà Nội – chưa đúng
• bước 2: so sánh Hải Phòng –chưa đúng
• bước 3: so sánh Ninh Bình – tìm thấy
Vậy cần 4 bước để tìm thấy
3 bước
Cần thực hiện 3 bước.
Thuật toán tìm kiếm tuần tự cần 3 bước để tìm được Ninh bình:
bước 1: so sánh Ninh bình với Hà Nội
• vì ninh bình và Hà Nội không khớp nên tiếp tục
bước 2: so sánh ninh bình với Hải phòng
• vì Ninh bình với Hải phòng không khớp nên tiếp tục
bước 3: so sánh ninh bình với ninh bình
• ninh bình với ninh bình khớp với nhau nên thuật toán kê
Thuật toán tìm kiếm tuần tự cần thực hiện 4 bước để tìm thấy thành phố Ninh Bình
Bước 1: Kiểm tra "Hà Nội" (Không phải Ninh Bình) Bước 2: Kiểm tra "Hải Phòng" (Không phải Ninh Bình) Bước 3: Kiểm tra "Ninh Bình" (Khớp!) Đáp án: Thuật toán cần thực hiện 3 bước.
Bước 1 : Hà Nội — chưa đúng
Bước 2 : Hải Phòng — chưa đúng
Bước 3 Ninh Bình — Đúng dừng lại
Vậy thuật toán tìm kiếm tuần tự cần 3 bước để tìm thấy thành phố Ninh Bình
Phải thực hiện ba bước
Tìm Ninh Bình bằng tìm kiếm tuần tự:
Bước 1: Hà Nội chưa đúng
Bước 2: Hải Phòng chưa đúng
Bước 3: Ninh Bình tìm thấy
Cần thực hiện 3 bước:
Bước 1: So sánh phần tử thứ nhất (Hà Nội) với "Ninh Bình". Kết quả: Không khớp Tiếp tục sang phần tử tiếp theo. Bước 2: So sánh phần tử thứ hai (Hải Phòng) với "Ninh Bình". Kết quả: Không khớp Tiếp tục sang phần tử tiếp theo. Bước 3: So sánh phần tử thứ ba (Ninh Bình) với "Ninh Bình". Kết quả: Khớp Thuật toán dừng lại và thông báo đã tìm thấy. Vì "Ninh Bình" nằm ở vị trí thứ 3 trong danh sách nên thuật toán cần thực hiện đúng 3 bước.
Thuật toán cần thực hiện 3 bước để tìm thấy Thành phố Ninh Bình.
Cần thực hiện 3 bước để tìm thấy Ninh Bình
b1 kiểm tra hà nội ( ko khớp)
b2 kiểm tra hải phòng ( ko khớp)
b3 kiểm tra ninh Bình ( khớp )
kết luận: vì vậy, thuật toán cần thực hiện 3 bước để tìm thấy thành phố ninh Bình
5 bước
3 bước