K
Khách

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.

=> Trước khi thực hiện thuật toán tìm kiếm nhị phân, danh sách khách hàng cần phải được sắp xếp theo một thứ tự nhất định, thường là theo thứ tự tăng dần hoặc giảm dần. 
--> Điều này là bắt buộc vì thuật toán tìm kiếm nhị phân hoạt động dựa trên việc so sánh giá trị cần tìm với giá trị ở vị trí giữa của danh sách, sau đó loại bỏ nửa danh sách không chứa giá trị cần tìm.
=> Nếu danh sách khách hàng không được sắp xếp, thuật toán tìm kiếm nhị phân sẽ không hoạt động chính xác. 
--> Trong trường hợp này, có thể cần sử dụng một thuật toán tìm kiếm khác như tìm kiếm tuần tự, hoặc cần phải sắp xếp danh sách trước khi thực hiện tìm kiếm nhị phân.

QT
Quoc Tran Anh Le
Giáo viên
9 tháng 11 2023

Sau lần chia đôi đầu tiên, pham vi tìm kiếm còn lại n/2 số, sau khi chia đôi lần thứ hai, dãy còn lại n/4 số, sau khi chia đôi lần thứ dãy còn lại n/8, …sau khi chia đôi lần k dãy còn lại n/2.­­­­­­­mũ k. Kết thúc khi 2 mũ k sấp xỉ n.

QT
Quoc Tran Anh Le
Giáo viên
9 tháng 11 2023

a. Ví dụ một bài toán tìm kiếm trong thực tế: Giáo viên muốn tìm tên bạn Chung trong danh sách lớp sau:

Các bước thực hiện thuật toán tìm kiếm nhị phân cho bài toán trên:

- Bước 1: Xét vị trí ở giữa dãy, đó là vị trí số 5

- 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ậ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ể, rõ ràng, đầy đủ, đầu vào là gì, đầu ra là gì và chỉ rõ sự kết thúc thuật toán.

- Cần mô tả thuật toán cho tốt thì người máy hay máy tính mới hiểu đúng và thực hiện được.

- Nếu không, kết quả thực hiện thuật toán có thể không như mong đợi.

12 tháng 1 2022

là người kim  thắng vì nhờ gian lận đúng ko

Câu 1:Vòng lặp While – do kết thúc khi nào   A. Khi một điều kiện cho trước được thỏa mãn   B. Khi đủ số vòng lặp   C. Khi tìm được Output   D. Tất cả các phương ánCâu 2:Việc đầu tiên mà câu lệnh While ... do cần thực hiện là gì?   A. Thực hiện < câu lệnh > sau từ khóa Do   B. Kiểm tra giá trị của < điều kiện >   C. Thực hiện câu lệnh sau từ khóa Then   D. Kiểm tra < câu lệnh >Câu 3:Cho biết câu lệnh sau Do...
Đọc tiếp

Câu 1:Vòng lặp While – do kết thúc khi nào

   A. Khi một điều kiện cho trước được thỏa mãn

   B. Khi đủ số vòng lặp

   C. Khi tìm được Output

   D. Tất cả các phương án

Câu 2:Việc đầu tiên mà câu lệnh While ... do cần thực hiện là gì?

   A. Thực hiện < câu lệnh > sau từ khóa Do

   B. Kiểm tra giá trị của < điều kiện >

   C. Thực hiện câu lệnh sau từ khóa Then

   D. Kiểm tra < câu lệnh >

Câu 3:Cho biết câu lệnh sau Do thực hiện mấy lần trong đoạn chương trình sau:

   i := 5;

   While i>=1 do i := i – 1;

   A. 1 lần

   B. 2 lần

   C. 5 lần

   D. 6 lần

Câu 4:Hãy cho biết kết quả của đoạn chương trình dưới đây:

a:=10; While a < 11 do write (a);

   A. Trên màn hình xuất hiện một số 10

   B. Trên màn hình xuất hiện 10 chữ a

   C. Trên màn hình xuất hiện một số 11

   D. Chương trình bị lặp vô tận

Câu 5:Câu lệnh sau giải bài toán nào:

   While M <> N do

   If M > N then M:=M-N else N:=N-M;

   A. Tìm UCLN của M và N

   B. Tìm BCNN của M và N

   C. Tìm hiệu nhỏ nhất của M và N

   D. Tìm hiệu lớn nhất của M và N

6
21 tháng 2 2022

1.A
2.B
3.C
4.A
5.A

Câu 1: A
Câu 2: B

Câu 3: C

Câu 4: A

Câu 5: A

Câu 21: Vòng lặp While – do kết thúc khi nào   A. Khi một điều kiện cho trước được thỏa mãn   B. Khi đủ số vòng lặp   C. Khi tìm được Output   D. Tất cả các phương ánCâu 22: Việc đầu tiên mà câu lệnh While ... do cần thực hiện là gì?   A. Thực hiện < câu lệnh > sau từ khóa Do   B. Kiểm tra giá trị của < điều kiện >   C. Thực hiện câu lệnh sau từ khóa Then   D. Kiểm tra < câu lệnh >Câu 23: Cho biết câu lệnh sau...
Đọc tiếp

Câu 21: Vòng lặp While – do kết thúc khi nào

   A. Khi một điều kiện cho trước được thỏa mãn

   B. Khi đủ số vòng lặp

   C. Khi tìm được Output

   D. Tất cả các phương án

Câu 22: Việc đầu tiên mà câu lệnh While ... do cần thực hiện là gì?

   A. Thực hiện < câu lệnh > sau từ khóa Do

   B. Kiểm tra giá trị của < điều kiện >

   C. Thực hiện câu lệnh sau từ khóa Then

   D. Kiểm tra < câu lệnh >

Câu 23: Cho biết câu lệnh sau Do thực hiện mấy lần trong đoạn chương trình sau:

   i := 5;

   While i>=1 do i := i – 1;

   A. 1 lần

   B. 2 lần

   C. 5 lần

   D. 6 lần

Câu 24:Hãy cho biết kết quả của đoạn chương trình dưới đây:

a:=10; While a < 11 do write (a);

   A. Trên màn hình xuất hiện một số 10

   B. Trên màn hình xuất hiện 10 chữ a

   C. Trên màn hình xuất hiện một số 11

   D. Chương trình bị lặp vô tận

Câu 25:Câu lệnh sau giải bài toán nào:

   While M <> N do

   If M > N then M:=M-N else N:=N-M;

   A. Tìm UCLN của M và N

   B. Tìm BCNN của M và N

   C. Tìm hiệu nhỏ nhất của M và N

   D. Tìm hiệu lớn nhất của M và N

Câu 26:Hoạt động nào sau đây lặp với số lần lặp chưa biết trước?

   A. Ngày tắm hai lần

   B. Học bài cho tới khi thuộc bài

   C. Mỗi tuần đi nhà sách một lần

   D. Ngày đánh răng 2 lần

Câu 27:cú pháp lệnh lặp với số lần chưa biết trước:

   A. While < điều kiện > to < câu lệnh >;

   B. While < điều kiện > to < câu lệnh 1 > do < câu lệnh 2 >;

   C. While < điều kiện > do ;< câu lệnh >;

   D. While < điều kiện > do < câu lệnh >;

Câu 28:Tính tống S = 1 + 2 + 3 + … + n + … cho đến khi S>108. Điều kiện nào sau đây cho vòng lặp while – do là đúng:

   A. While S>=108 do

   B. While S < 108 do

   C. While S < 1.0E8 do

   D. While S >= E8 do

Câu 29:Pascal sử dụng câu lệnh lặp nào sau đây để lặp với số lần chưa biết trước:

   A. For…do

   B. While…do

   C. If..then

   D. If…then…else

Câu 30:Hãy đưa ra kết quả trong đoạn lệnh:

   x:=1; While x<=5 do write(‘Hoa hau’);

   A. x:=1

   B. X>=5

   C. Hoa hau

   D. Không có kết quả.

0
19 tháng 8 2023

Tham khảo:

#Trả về chỉ số của x trong arr nếu tồn tại, nếu không có sẽ trả về -1

def binary_search(arr, low, high, x):

    #Trường hợp cơ sở

    if high >= low:

        mid = (high + low) // 2

        #Nếu phần tử có tồn tại ở phần giữa của mảng

        if arr[mid] == x:

            return mid

        #Nếu phần tử nhỏ hơn mid, nó sẽ nằm ở phía bên trái của mảng điểm gốc là tử phần tử mid

        elif arr[mid] > x:

            return binary_search(arr, low, mid - 1, x)

        #Nếu không, phần tử sẽ nằm bên phải

        else:

            return binary_search(arr, mid + 1, high, x)

    else:

        #Phần tử không tồn tại trong tập hợp

        return -1

#Khởi tạo tập hợp

arr = [ 2, 3, 4, 10, 40 ]

x = 10

#Gọi hàm

result = binary_search(arr, 0, len(arr)-1, x)

if result != -1:

    print("Phần tử cần tìm có chỉ số là ", str(result))

else:

    print("Phần tử cần tìm không có trong mảng.")