Câu hỏi:

20/04/2023 670

Cho A là danh sách tên các học sinh trong lớp được sắp xếp theo thứ tự bảng chữ cái, viết thương trình tìm kiếm nhị phân để tìm ra các học sinh có tên là Minh.

Siêu phẩm 30 đề thi thử THPT quốc gia 2024 do thầy cô VietJack biên soạn, chỉ từ 100k trên Shopee Mall.

Mua ngay

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

def binary_search(names, target):

    low = 0

    high = len(names) - 1

    while low <= high:

        mid = (low + high) // 2

        mid_name = names[mid]

        if mid_name == target:

            return mid

        elif mid_name < target:

            low = mid + 1

        else:

            high = mid - 1

    return -1

# Danh sách tên học sinh trong lớp (đã được sắp xếp theo thứ tự bảng chữ cái)

class_names = ["An", "Bình", "Cường", "Đạt", "Hoàn", "Minh", "Nam", "Thảo", "Trung"]

# Tên học sinh cần tìm

target_name = "Minh"

# Gọi hàm tìm kiếm nhị phân

result = binary_search(class_names, target_name)

if result != -1:

    print("Học sinh có tên là", target_name, "được tìm thấy tại vị trí", result)

else:

    print("Học sinh có tên là", target_name, "không tồn tại trong danh sách.")


 

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

Cho dãy A = [1, 91, 45, 23, 67, 9, 10, 47, 90, 46, 86]. Thuật toán tìm kiếm tuần tự cần thực hiện bao nhiêu lần duyệt để tìm ra phần tử có giá trị bằng 47 trong dãy?

Xem đáp án » 20/04/2023 2,474

Câu 2:

Cho dãy A= {0, 4, 9, 10, 12,14, 17, 18, 20, 31, 34, 67}

Với thuật toán tìm kiếm tuần tự, cần duyệt bao nhiêu phần tử để tìm ra phần từ có giá trị bằng 34?

Xem đáp án » 20/04/2023 1,771

Câu 3:

Khi nào thì tìm kiếm tuần tự sẽ cần nhiều bước nhất? Cho ví dụ.

Xem đáp án » 20/04/2023 1,260

Câu 4:

Với thuật toán tìm kiếm nhị phân, cần duyệt bao nhiêu phần tử để tìm ra phân tử có giá trị bằng 34?

Xem đáp án » 20/04/2023 750

Câu 5:

Thay vị lần lượt lật các thẻ từ đầu đến cuối, bạn Minh đã chơi như sau: Đầu Tiên Minh lật thẻ ở giữa, sau đó tuỳ theo số ghi trên thẻ là lớn hơn hay nhỏ hơn số K mà lạt tiếp thẻ ở ngay bên trái hoặc ngay bên phải thẻ ở giữa. Trong trường hợp này, số lần nhiều nhất mà Minh phải lật để tìm ra thẻ in số K là bao nhiêu?

Xem đáp án » 20/04/2023 726

Câu 6:

Em hãy chỉnh sửa thuật toán tìm tuần tự để tìm ra tất cả các phần tử trong dãy bằng giá trị cần tìm, biết dãy đó có nhiều phân tử bằng giá trị cần tìm.

Xem đáp án » 20/04/2023 420

Bình luận


Bình luận
tailieugiaovien.com.vn
tuyen-dung-giao-vien-1900