Dễ hiểu giải Tin học 11 Cánh diều KHMT bài 7 Lập trình giải bài toán tìm kiếm
Giải dễ hiểu bài 7 Lập trình giải bài toán tìm kiếm. Trình bày rất dễ hiểu, nên tiếp thu Tin học 11 KHMT Cánh diều dễ dàng. Học sinh nắm được kiến thức và biết suy rộng ra các bài tương tự. Thêm 1 dạng giải mới để mở rộng tư duy. Danh mục các bài giải trình bày phía dưới
Nếu chưa hiểu - hãy xem: => Lời giải chi tiết ở đây
CHỦ ĐỀ FCS: GIẢI QUYẾT VẤN ĐỀ VỚI SỰ TRỢ GIÚP CỦA MÁY TÍNH
BÀI 7 LẬP TRÌNH GIẢI BÀI TOÁN TÌM KIẾM
KHỞI ĐỘNG
Câu 1: Khi tạo mới một tài khoản người dùng, em được yêu cầu nhập tên người dùng “user name”. Có trường hợp em phải nhập lại tên khác vì tên vừa nhập đã có người sử dụng rồi. Theo em, máy tính làm gì ngay sau khi nhận được yêu cầu tạo mới một tài khoản? Hãy phát biểu thành một bài toán.
Giải nhanh:
Bắt đầu tìm kiếm dữ liệu và tiến hành xử lí thông tin
HOẠT ĐỘNG
Câu 1: Em hãy thực hiện các yêu cầu sau:
- Viết mã giả cho thuật toán tìm kiếm nhị phân.
- Ước lượng số lần thực hiện vòng lặp trong thuật toán tìm kiếm nhị phân.
- Ước lượng độ phức tạp thời gian của thuật toán tìm kiếm nhị phân.
Giải nhanh:
Sau lần chia đôi đầu tiên, pham vi tìm kiếm còn n/2 số, sau khi chia đôi lần thứ hai, dãy còn n/4 số,… sau khi chia đôi lần k dãy còn n/2k. Kết thúc khi 2k ~ n.
VẬN DỤNG
Câu 1: Viết chương trình tìm kiếm vị trí tên của một người trong mỗi danh sách sau đây:
- Danh sách học sinh của lớp em.
- Danh sách tên các chủ tài khoản ngân hàng (kí tự không dấu) và đã sắp thứ tự theo bang chữ cái.
Giải nhanh:
a)
def tim_vi_tri_ten_hoc_sinh(danh_sach, ten_hoc_sinh):
try:
vi_tri = danh_sach.index(ten_hoc_sinh) + 1 # Trả về vị trí (bắt đầu từ 1)
return f"Học sinh {ten_hoc_sinh} nằm ở vị trí thứ {vi_tri}."
except ValueError:
return f"Học sinh {ten_hoc_sinh} không có trong danh sách."
b)
def tim_kiem_nhi_phan(danh_sach, ten_can_tim):
left, right = 0, len(danh_sach) - 1
while left <= right:
mid = (left + right) // 2
if danh_sach[mid] == ten_can_tim:
return f"Chủ tài khoản {ten_can_tim} nằm ở vị trí thứ {mid + 1}."
elif danh_sach[mid] < ten_can_tim:
left = mid + 1
else:
right = mid - 1
return f"Chủ tài khoản {ten_can_tim} không có trong danh sách."
CÂU HỎI TỰ KIỂM TRA
Câu 1: Em hãy nêu ra một vài ví dụ về bài toàn tìm kiếm trong thực tế.
Giải nhanh:
- Tìm kiếm sản phẩm trong cơ sở dữ liệu của một trang thương mại điện tử.
- Tìm kiếm thông tin liên hệ của một người trong danh sách khách hàng của một doanh nghiệp.
Câu 2: Theo em, với dãy đã sắp thứ tự và cho một số x cụ thể
a) Trường hợp nào tìm kiếm tuần tự nhanh hơn tìm kiếm nhị phân?
b) Về trung bình thuật toán tìm kiếm tuần tự hay thuật toán tìm kiếm nhị phân tốt hơn?
Giải nhanh:
a) Ví dụ: Giáo viên muốn tìm tên bạn Chung trong danh sách lớp sau:
Các bước:
- Bước 1: Xét vị trí ở giữa dãy, đó là vị trí số 5
- Bước 2: Xét vị trí ở giữa của nửa đầu của dãy là vị trí số 3
- Vì sau bước 2 đã tìm thấy tên học sinh nên thuật toán kết thúc.
b)
- Thuật toán tìm kiếm nhị phân thu hẹp được phạm vi tìm kiếm chỉ còn tối đa là một nửa sau mỗi lần lặp. Thuật toán chia bài toán thành những bài toán nhỏ hơn giúp tăng hiệu quả tìm kiếm.
- Thuật toán tuần tự: Mô tả thuật toán phải cụ thể, cần mô tả cho tốt thì máy tính mới hiểu đúng và thực hiện được.
Nếu chưa hiểu - hãy xem: => Lời giải chi tiết ở đây
Nội dung quan tâm khác
Thêm kiến thức môn học
Giải bài tập những môn khác
Giải sgk lớp 11 KNTT
Giải sgk lớp 11 CTST
Giải sgk lớp 11 cánh diều
Giải SBT lớp 11 kết nối tri thức
Giải SBT lớp 11 chân trời sáng tạo
Giải SBT lớp 11 cánh diều
Giải chuyên đề học tập lớp 11 kết nối tri thức
Giải chuyên đề toán 11 kết nối tri thức
Giải chuyên đề ngữ văn 11 kết nối tri thức
Giải chuyên đề vật lí 11 kết nối tri thức
Giải chuyên đề hóa học 11 kết nối tri thức
Giải chuyên đề sinh học 11 kết nối tri thức
Giải chuyên đề kinh tế pháp luật 11 kết nối tri thức
Giải chuyên đề lịch sử 11 kết nối tri thức
Giải chuyên đề địa lí 11 kết nối tri thức
Giải chuyên đề mĩ thuật 11 kết nối tri thức
Giải chuyên đề âm nhạc 11 kết nối tri thức
Giải chuyên đề công nghệ chăn nuôi 11 kết nối tri thức
Giải chuyên đề công nghệ cơ khí 11 kết nối tri thức
Giải chuyên đề tin học 11 định hướng Khoa học máy tính kết nối tri thức
Giải chuyên đề tin học 11 định hướng Tin học ứng dụng kết nối tri thức
Giải chuyên đề quốc phòng an ninh 11 kết nối tri thức
Giải chuyên đề hoạt động trải nghiệm hướng nghiệp 11 kết nối tri thức
Giải chuyên đề học tập lớp 11 chân trời sáng tạo
Giải chuyên đề học tập lớp 11 cánh diều
Trắc nghiệm 11 Kết nối tri thức
Trắc nghiệm 11 Chân trời sáng tạo
Trắc nghiệm 11 Cánh diều
Bộ đề thi, đề kiểm tra lớp 11 kết nối tri thức
Đề thi Toán 11 Kết nối tri thức
Đề thi ngữ văn 11 Kết nối tri thức
Đề thi vật lí 11 Kết nối tri thức
Đề thi sinh học 11 Kết nối tri thức
Đề thi hóa học 11 Kết nối tri thức
Đề thi lịch sử 11 Kết nối tri thức
Đề thi địa lí 11 Kết nối tri thức
Đề thi kinh tế pháp luật 11 Kết nối tri thức
Đề thi công nghệ cơ khí 11 Kết nối tri thức
Đề thi công nghệ chăn nuôi 11 Kết nối tri thức
Đề thi tin học ứng dụng 11 Kết nối tri thức
Đề thi khoa học máy tính 11 Kết nối tri thức
Bộ đề thi, đề kiểm tra lớp 11 chân trời sáng tạo
Bộ đề thi, đề kiểm tra lớp 11 cánh diều
Đề thi Toán 11 Cánh diều
Đề thi ngữ văn 11 Cánh diều
Đề thi vật lí 11 Cánh diều
Đề thi sinh học 11 Cánh diều
Đề thi hóa học 11 Cánh diều
Đề thi lịch sử 11 Cánh diều
Đề thi địa lí 11 Cánh diều
Đề thi kinh tế pháp luật 11 Cánh diều
Đề thi công nghệ cơ khí 11 Cánh diều
Đề thi công nghệ chăn nuôi 11 Cánh diều
Đề thi tin học ứng dụng 11 Cánh diều
Đề thi khoa học máy tính 11 Cánh diều
Bình luận