/codegym.vn/ - 150
Link mã nguồn tham khảo:
https://github.com/codegym-vn/introduction-to-
programming-with-javascript/blob/main/chapter-07/exercise-03-tim-min-max.html
8. Bài tập
Bài 1: Tìm số điện thoại
Cho một danh sách các số điện thoại di động của nhiều nhà mạng khác nhau. Hãy
viết một hàm để hiển thị các số di động thuộc nhà mạng Viettel.
Bài 2: Game đoán số
Hãy xây dựng một ứng dụng game đoán số được mô tả như sau: Người chơi được
phép bí mật chọn trước một số nằm trong khoảng từ 1 đến 100. Nhiệm vụ của ứng
dụng sẽ là đoán xem người chơi đã chọn số nào trong khoảng đó.
Ứng dụng thực hiện việc này bằng cách hỏi người chơi và người chơi sẽ phải trả lời
trung thực.
Câu hỏi sẽ có dạng: “Có phải số bạn chọn là X hay không? Nếu không phải thì hãy
cho tôi biết là nó lớn hơn hay nhỏ hơn X?
Người chơi sẽ phải trả lời 1 trong 3 trường hợp:
● Số tôi chọn chính là X: trò chơi kết thúc
● Số tôi chọn nhỏ hơn X: ứng dụng tiếp tục hỏi câu tiếp theo
● Số tôi chọn lớn hơn X: ứng dụng tiếp tục hỏi câu tiếp theo
Gợi ý: Bản chất của trò chơi này đó là triển khai thuật toán tìm kiếm nhị phân.
Bài 3: Triển khai thuật toán tìm kiếm nhị phân bằng cách sử dụng hàm đệ
quy
Hãy viết một hàm đệ quy để triển khai tìm kiếm nhị phân mà không sử dụng vòng lặp.
Gợi ý: Xem lại nội dung về Hàm đệ quy trong Chương 6.
9. Bài kiểm tra
Câu 1: Độ phức tạp tốt nhất của thuật toán tìm kiếm tuyến tính là?
a) O(n)
b) O(logn)
c) O(nlogn)
d) O(1)