# data[].attributes.headline
1. Phần cứng, phần mềm và sử dụng máy tính

# data[].attributes.subject
1. Phần cứng, phần mềm và sử dụng máy tính

# data[].attributes.body
Tìm x = 60

Chia đôi lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

Chia đôi lần 2 : Phạm vi tìm kiếm là từ dãy a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

Chia đôi lần 3 : Phạm vi tìm kiếm là dãy con từ a7 đến a8. Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

Kết thúc thuật toán với kết quả : Không tìm thấy 60.

# data[].attributes.body
Tìm x = 60

Chia đôi lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

Chia đôi lần 2 : Phạm vi tìm kiếm là từ dãy a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

Chia đôi lần 3 : Phạm vi tìm kiếm là dãy con từ a7 đến a8. Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

Kết thúc thuật toán với kết quả : Không tìm thấy 60.

# data[].attributes.body
Tìm x = 60

Chia đôi lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

Chia đôi lần 2 : Phạm vi tìm kiếm là từ dãy a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

Chia đôi lần 3 : Phạm vi tìm kiếm là dãy con từ a7 đến a8. Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

Kết thúc thuật toán với kết quả : Không tìm thấy x ở vị trí thứ bảyTìm x = 60

Chia đôi lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

Chia đôi lần 2 : Phạm vi tìm kiếm là từ dãy a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

Chia đôi lần 3 : Phạm vi tìm kiếm là dãy con từ a7 đến a8. Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

Kết thúc thuật toán với kết quả : Không tìm thấy x ở vị trí thứ bảy

# data[].attributes.body
Tìm x = 60

Chia đôi lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

Chia đôi lần 2 : Phạm vi tìm kiếm là từ dãy a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

Chia đôi lần 3 : Phạm vi tìm kiếm là dãy con từ a7 đến a8. Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

Kết thúc thuật toán với kết quả : Không tìm thấy x ở vị trí thứ bảy

# data[].attributes.body
Bước 1: Xác định 41 ở giữa phạm vi tìm kiếm

Vì 41 ≠ 60 nên loại bỏ nửa dãy bên trái

Phạm vi tìm kiếm = nửa dãy còn lại

Bước 2: Xác định 63 ở giũa phạm vi tìm kiếm

Vì 63 ≠ 60 nên loại bỏ nửa dãy bên phải

Phạm vi tìm kiếm = nửa dãy còn lại

Bước 3: Xác định 52 ở giữa phạm vi tìm kiếm

52 ≠ 60; kết thúc thuật toán
Hết nhánh

Hết lặp

Bước 4: Thông báo không có 60 trong dãy

# data[].attributes.body
a1 a2 a3 a4 a5 a6 a7 a8

Bắt đầu 5 11 18 39 41 52 63 70

B 1 41 52 63 70

B 2 41 52

B 3 41

B 1: Phạm vi tìm kiếm là dãy ban đầu

B2: Lặp khi vẫn còn phạm vi tìm kiếm

a) Xác định phần tử a5 ở giữa phạm vi tìm kiếm

b) Nếu x=a5

Trái lại: Loại bỏ nữa dãy chắc chắn không chứa x

Phạm vi tìm kiếm = nửa dãy còn lại

Hết nhánh

Hết lặp

Bước 3: ( Đã hết dãy số mà không thấy x):Thông báo không có x trong dãy

# data[].attributes.body
Cho dãy số 5,11,18,39,41,52,63,70.Hãy mô tả diễn biến từng bước tìm kiếm nhị phân để tìm kiếm x=60 trong dãy trên

a1 a2 a3 a4 a5 a6 a7 a8

Xuất phát 5 11 18 39 41 52 63 70

Bước 1 :41 52 63 70

Bước 2 :41 52

Bước 3 41

Bước 1: Phạm vi tìm kiếm là dãy ban đầu

Bước 2: Lặp khi vẫn còn phạm vi tìm kiếm

a) Xác định phần tử a5 ở giữa phạm vi tìm kiếm

b) Nếu x=a5

Trái lại: Loại bỏ nữa dãy chắc chắn không chứa x

Phạm vi tìm kiếm = nửa dãy còn lại

Hết nhánh

Hết lặp

Bước 3: ( Đã hết dãy số mà không thấy x):Thông báo không có x trong dãy

# data[].attributes.attachment_link.title
Bài tập trang 83 Trần Ngọc Kim Khánh 7.7

# data[].attributes.body
Văn Bảo Nam 7/8

# data[].attributes.body
x = 60
Bước 1 : xác dinh số ở giữa dãy là 41
Vì 41 không bằng 60 => bỏ nửa dãy sau
Bước 2 : xác định số ở giữa dãy còn lại là số 63
Vì 63 không bằng 60 => bỏ nữa trên
Bước 3 : xác định số ở giữa dãy còn lại là 52
Vì 52 không bằng 60 => không tìm thấy số x trong dãy trên
Hết lặp
Kết thúc thuật toán

# data[].attributes.body
Bước 1 : Phạm vi tìm kiếm là dãy ban đầu
Bước 2 : Lặp lai khi vẫn còn phạm vi tìm kiếm
-Xác định phần tử a^m ở giữa phạm vi tìm kiếm
b) Nếu x = a^m:
Thông báo tìm thấy x ở vị trí đó
Kết thúc thuật toán
Ngược lại:
Loại bỏ nữa dãy chắc chắn không có x
Phạm vi tìm kiếm = nữa dãy còn lại
Hết nhánh
Hết lặp
Bước 3: (Đã hết dãy không tìm thấy x ):Thông báo không có x trong dãy số

# data[].attributes.body
quan 7/8

# data[].attributes.body
Tìm x = 60

Chia đôi lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

Chia đôi lần 2 : Phạm vi tìm kiếm là từ dãy a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

Chia đôi lần 3 : Phạm vi tìm kiếm là dãy con từ a7 đến a8. Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

Kết thúc thuật toán với kết quả : Không tìm thấy x ở vị trí thứ ba

# data[].attributes.body
x=60
Bước 1:
60≠41
Bỏ các số từ 41.
Bước 2:
63≠60
Bỏ các số từ 63.
Bước 3:
52≠60
Kết quả: số 60 không có trong dãy.
Hết.

# data[].attributes.body
Bước 1: Phạm vi tìm kiếm là dãy ban đầu

Bước 2: Lặp khi vẫn còn Phạm vi tìm kiếm

a) Xác định phần tử a5 ở giữa Phạm vi tìm kiếm

b) Nếu x=a5:

Thông báo tì thấy x ở vị trí thứ 5

Kết thúc thuật toán

Trái lại:

Loại bỏ nữa dãy chắc chắn không chứa x

Phạm vi tìm kiếm = nửa dãy còn lại

Hết nhánh

Hết lặp

Bước 3: (Đã hết dãy số mà không thấy x): Thông báo không có x trong dãy.

# data[].attributes.body
Tìm x = 60

Chia đôi lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

Chia đôi lần 2 : Phạm vi tìm kiếm là từ dãy a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

Chia đôi lần 3 : Phạm vi tìm kiếm là dãy con từ a7 đến a8. Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

Kết thúc thuật toán với kết quả : Không tìm thấy x ở vị trí thứ bảy

# data[].attributes.body
x = 60

chia nửa lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a.Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

chia nửa lần 2:Phạm vi tìm kiếm là từ dãy a5 đến a8.Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

chia nửa lần 3:Phạm vi tìm kiếm là dãy con từ a7 đến a8.Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

kết thúc thuật toán với kết quả : Không thấy x ở vị trí thứ bảy

# data[].attributes.body
Bước 1: Phạm vi tìm kiếm là dãy ban đầu
Bước 2: Lặp khi vẫn còn phạm vi tim kiểm
a) Xác định phần tử a5 ở giữa phạm vi tim kiếm
b) Nếu x-a5
Trái lại: Loại bỏ nữa dãy chắc chắn không chứa x
Phạm vi tìm kiếm = nửa dãy còn lại
Hết nhánh
Hết lặp
Bước 3: ( Đã hết dãy số mà không thấy x): Thông báo không có x trong dãy

# data[].attributes.body
Tìm x = 60

Chia đôi lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

Chia đôi lần 2 : Phạm vi tìm kiếm là từ dãy a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

Chia đôi lần 3 : Phạm vi tìm kiếm là dãy con từ a7 đến a8. Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

Kết thúc thuật toán với kết quả : Không tìm thấy x ở vị trí thứ bảy

# data[].attributes.body
Tìm x = 60

Chia nửa lần 1 : Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí ở giữa dãy; Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a5 đến a8.

Chia nửa lần 2 : Phạm vi tìm kiếm là từ dãy a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x > a6 nên nên nửa đầu dãy chắc chắn không chứa x = 60, tiếp theo chỉ cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con từ a7 đến a8.

Chia đôi lần 3 : Phạm vi tìm kiếm là dãy con từ a7 đến a8. Lấy a7 là vị trí ở đầu dãy; Vì x < a8 nên a8 chắc chắn không chứa x = 60. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một số a7.

Kết thúc thuật toán với kết quả : Không tìm thấy x ở vị trí thứ bảy

# data[].attributes.body
Bước 1:Phạm vi tìm kiếm là dãy ban đầu
Bước 2 : Lặp khi vẫn còn Phạm vi tìm kiếm
a)Xác định phần từ a^m ở giữa Phạm vi tìm kiếm
b)Nếu x = a:
Thông báo tìm thấy x ở vị trí m
Kết thúc thuật toán
Trái lại:
Loại bỏ nữa dãy còn lại chắc chắn không có   x
Phạm vi tìm kiếm = nửa dãy còn lại
Hết nhánh
Hết lặp
Bước 3 : ( Đã hết dãy số mà không thấy x):Thông báo không có x trong dãy

# data[].attributes.body
Bước 1: Phạm vi tìm kiếm là dãy ban đầu

Bước 2: Lặp khi vẫn còn Phạm vi tìm kiếm

a) Xác định phần tử am ở giữa Phạm vi tìm kiếm

b) Nếu x = am:

Thông báo tìm thấy x ở vị trí thứ m

Kết thúc thuật toán

Trái lại:

Loại bỏ nữa dãy chắc chắn không chứa x

Phạm vi tìm kiếm là nửa dãy còn lại

Hết nhánh

Hết lặp
Kết thúc thuật toán

Bước 3: Thông báo tìm thấy x trong dãy số trên.

# data[].attributes.body
Bước 1 :Phạm vi tìm kiếm là dãy ban đầu
Bước 2: Lặp khi; vẫn còn phạm vi tìm kiếm
a) Xác định phần tử am ở giữa phạm vi tìm kiếm
b) Nếu x = am
Thông báo tìm thấy x ở vị trí am
Kết thúc thuật toán
Trái lại
Loại bỏ nửa dãy chắc chắn không chứa x
Phạm vi tìm kiếm tiếp theo = nửa dãy còn lại
Hết nhánh

Hết lặp
Bước 3: Thông báo không có x trong dãy số (đã hết dãy số mà không tìm thấy x)

# data[].attributes.body
Bước 1: Phạm vi tìm kiếm là dãy ban đầu

Bước 2: Lặp khi vẫn còn phạm vi tìm kiếm

A) Xác định phần tử am ở giữa phạm vi tìm kiếm

B) Nếu x=am:

Thông báo tìm thấy x ở vị trí m

Kết thúc thuật toán

Ngược lại:

Loại bỏ nửa dãy chắc chắn không chứa x

Đổi phạm vi tìm kiếm sang nửa dãy còn lại

Hết nhánh

Hết lặp

Bước 3 Đã hết dãy số mà không tìm thấy x, Thông báo không có x trong dãy

# data[].attributes.body
Bước1:
Phạm vi tìm kiếm là dẵy ban đầu
Bước2:
Lặp lại khi vẫn còn phạm vi tìm kiếm
a)xác định phần tử a^g ở giữa phạm vi tìm kiếm
b)Nếu x=a^g
Thông báo tìm thấy x ở vị trí g
Kết thúc thuật toán
Trái lại:
loại bỏ nửa dăy chắc chắn khong chứa x
Phạm vi tìm kiếm=nửa dặyx còn lại
Hết nhánh
Hết lặp
Bước3: Thông báo không có x trong dãy.

# data[].attributes.body
B1: phạm vi tìm kiếm là dãy ban đầu
B2: lặp lại vẫn còn phạm vi tìm kiếm
a) xác định phần tử a^m ở giữa phạm vi tìm kiếm
b nếu x=a^m:
thông báo tìm thấy x ở vị trí m
kết thúc thuật toán
trái lại:
loại bỏ nửa dãy chắc chắn không chứ x
phạm vi tìm kiếm = nửa dãy còn lại
hết nhánh
hết lặp
B3: (đã hết dãy số mà không thấy x): thông báo không có x trong dãy số.

# data[].attributes.body
Bước 1:Phạm vi tìm kiếm là dãy ban đầu

Bước 2:Lặp khi vẫn còn Phạm vi tìm kiếm

a)Xác định phần tử am ở giữa Phạm vi tìm kiếm

b)Nếu x=am:

Thông báo tìm thấy x ở vị trí m

Kết thúc thuật toán

Trái lại:

Loại bỏ nửa dãy chắc chắn không chứa x

Phạm vi tìm kiếm =nửa dãy còn lại

Hết nhánh

Hết lặp

Bước 3(Đã hết dãy số mà không thấy x):Thông báo không có x trong dãy

# data[].attributes.body
-Bước 1:
phạm vi tìm kiếm là dãy ban đầu

-Bước 2:
lặp lại vẫn còn phạm vi tìm kiếm
a) xác định phần tử a^m ở giữa phạm vi tìm kiếm
b nếu x=a^m:
thông báo tìm thấy x ở vị trí m
kết thúc thuật toán
trái lại:
loại bỏ nửa dãy chắc chắn không chứ x
phạm vi tìm kiếm = nửa dãy còn lại
hết nhánh
hết lặp
-Bước 3:
(đã hết dãy số mà không thấy x): thông báo không có x trong dãy số.

# data[].attributes.body
Bước 1:Phạm vi tìm kiếm là dãy ban đầu
Bước 2 : Lặp khi vẫn còn Phạm vi tìm kiếm
a)Xác định phần từ a^m ở giữa Phạm vi tìm kiếm
b)Nếu x = a:
Thông báo tìm thấy x ở vị trí m
Kết thúc thuật toán
Trái lại:
Loại bỏ nữa dãy còn lại chắc chắn không có   x
Phạm vi tìm kiếm = nửa dãy còn lại
Hết nhánh
Hết lặp
Bước 3 : ( Đã hết dãy số mà không thấy x):Thông báo không có x trong dãy

# data[].attributes.body
B1: Phạm vi tìm kiếm là dãy ban đầu
B2: Lặp khi vẫn còn Phạm vi tìm kiếm
a) Xác định phần tử am ở giữa Phạm vi tìm kiếm
b) Nếu x=am
Thông báo tìm thấy x ở vị trí thứ m
Kết thúc thuật toán
Trái lại
Loại bỏ nửa dãy chắc chắn không chứa x
Phạm vi tìm kiếm là nửa dãy còn lại
Hết nhánh
Kết thúc thuật toán
B3: Thông báo tìm thấy x trong dãy số trên

# data[].attributes.body
Bước 1. Phạm vi tìm kiếm là dãy ban đầu
Bước 2. Lặp khi vẫn còn Phạm vi tìm kiếm
a) Xác định phần tử am ở giữa Phạm vi tìm kiếm
b) Nếu x = am :
Thông báo tìm thấy x ở vị trí m
Kết thúc thuật toán
Trái lại
Loại bỏ nửa dãy chắc chắn không chứa x
Phạm vi tìm kiếm = nửa dãy còn lại
Hết nhánh
Hết lặp
Bước 3. (Đã hết dãy số mà không thấy x) : Thông báo không có x trong dãy