/codegym.vn/ - 146
10.
}
11.
}
Với cách viết như trên, vòng lặp nào cũng sẽ không báo về việc tìm thấy hoặc không
tìm thấy từ vựng đã nhập. Lỗi này rất thường gặp ở những người mới học lập trình.
Để giải quyết tình huống trên, chúng ta chuyển việc thông báo kết quả ra khỏi vòng
lặp, và sử dụng từ khoá break để ngắt vòng lặp sau khi tìm thấy kết quả. Đoạn mã
được viết lại như sau:
1.
let
inpWord
=
prompt
(
"Nhập vào từ cần tra:"
);
2.
let
enWords
=
[
"Hello"
,
"Google"
,
"Code"
,
"Fun"
];
3.
let
viWords
=
[
"Xin chào"
,
"Google"
,
"Viết mã"
,
"Vui"
];
4.
let
foundIndex
=
-
1
;
5.
6.
for
(
let
i
=
0
;
i
<
enWords
.
length
;
i
++)
{
7.
if
(
enWords
[
i
]
===
inpWord
)
{
8. foundIndex
=
i
;
9.
break
;
10.
}
11.
}
12.
if
(
foundIndex
>
-
1
)
{
13. console
.
log
(
'Nghĩa của từ vựng là: '
+
viWords
[
foundIndex
]);
14.
}
else
{
15. console
.
log
(
'Không tìm thấy từ vựng đã nhập!'
);
16.
}
7. Bài thực hành
Bài 1: Tìm một giá trị trong mảng sử dụng thuật toán tìm kiếm nhị phân
Mục tiêu:
Luyện tập sử dụng thuật toán tìm kiếm nhị phân
Mô tả:
Cho trước 1 mảng các số nguyên đã được sắp xếp như sau:
array = [1, 2, 3, 4, 6, 7, 9, 11, 12, 14, 15, 16, 17, 19, 33, 34, 43, 45, 55, 66];
Hãy tìm số có giá trị bằng 9 được lưu trữ tại vị trí nào trong mảng.
Hướng dẫn:
Bước 1: Xây dựng hàm binarySearch(data, intArray) có 2 tham số hình thức là giá trị
cần tìm và mảng các số nguyên đã được sắp xếp.
1.
function
binarySearch
(
data
,
intArray
)
{
2.
let
lowerBound
=
0
;
// chỉ số đầu
3.
let
upperBound
=
intArray
.
length
-
1
;
// chỉ số cuối
4.
let
midPoint
=
-
1
;
// chỉ số giữa
5.
let
index
=
-
1
;
// vị trí tìm thấy giá trị cần tìm trong mảng
6.
7.
while
(
lowerBound
<=
upperBound
)
{
8. midPoint
=
Math
.
floor
((
lowerBound
+
upperBound
)
/
2
);
9.
if
(
intArray
[
midPoint
]
==
data
)
{
10. index
=
midPoint
;
11.
break
;