/codegym.vn/ - 147
12.
}
else
{
13.
if
(
intArray
[
midPoint
]
<
data
)
{
14. lowerBound
=
midPoint
+
1
;
15.
}
else
{
16. upperBound
=
midPoint
-
1
;
17.
}
18.
}
19.
}
20.
return
index
;
21.
}
Bước 2: Khai báo mảng các số nguyên đã được sắp xếp và giá trị cần tìm:
1.
let
array
=
[
1
,
2
,
3
,
4
,
6
,
7
,
9
,
11
,
12
,
14
,
15
,
16
,
17
,
19
,
33
,
34
,
43
,
45
,
55
,
66
];
2.
let
data
=
9
;
Bước 3: Truyền mảng các số nguyên và giá trị cần tìm đã được khai báo như đối số
của hàm binarySearch:
1.
let
index
=
binarySearch
(
data
,
array
);
Bước 4: Hiển thị vị trí tìm thấy giá trị cần tìm trong mảng:
1.
if
(
index
!=
-
1
)
{
2. console
.
log
(
data
+
' is found at the location: '
+
index
);
3.
}
else
{
4. console
.
log
(
'not found'
);
5.
}
Bước 5: Chạy và quan sát kết quả.
Link mã nguồn tham khảo: https://github.com/codegym-vn/introduction-to-
programming-with-javascript/blob/main/chapter-07/exercise-01-thuat-toan-tim-kiem-
nhi-phan.html
Bài 2: Tìm một giá trị trong mảng sử dụng thuật toán tìm kiếm tuyến tính
Mục tiêu:
Luyện tập sử dụng thuật toán tìm kiếm tuyến tính
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 linearSearch(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
linearSearch
(
data
,
intArray
)
{
2.
let
index
=
-
1
;
3.
for
(
let
i
=
0
;
i
<
intArray
.
length
;
i
++){
4.
if
(
data
==
intArray
[
i
]){
5.
index
=
i
;
6.
}
7.
}
8.
return
index
;
9.
}