ý t ởng:Lần l ợt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá k cho đến khi có sự trùng nhau, nếu đã xét tới số hạng cuối cùng mà không có sự trùng nhau thì có nghĩa
Trang 1(TiÕt PPCT :13)
Trang 21 2 3 4 5 6
VÝ dô 1: Cho 6 qu¶ cÇu cã khèi l îng kh¸c nhau H·y t×m vÞ trÝ qu¶ cÇu cã khèi l îng b»ng 2kg.
1 kg 1,5 kg 1,65 kg 2,5 kg 2 kg VËy qu¶ cÇu cã khèi
l îng b»ng 2kg ë vÞ trÝ thø 5
Trang 35 4
3 2
1 i
51 25
11 8
9 2
4 1
7 5
A
M« pháng t×m kiÕm trong mét d·y sè nguyªn
Víi k = 2 vµ d·y A gåm 10 sè h¹ng nh sau:
Víi k = 6 vµ d·y A gåm 10 sè h¹ng nh sau:
K
5
K
Trang 4Bài toán : Cho dãy A gồm N số nguyên khác nhau
a1,a2, ,an và số nguyên K cho tr ớc Hãy xác định thuật toán tìm chỉ số i mà ai = k.
Ví dụ 3 :Thuật toán tìm kiếm tuần tự
Xác định bài toán:
INPUT: Dãy A gồm N số nguyên a1, a2, …, a , aN đôi một khác nhau và số nguyên k.
OUTPUT: Chỉ số i mà ai = k hoặc thông báo
không có số hạng nào của A bằng k
Trang 5ý t ởng:
Lần l ợt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá (k) cho đến khi có sự trùng nhau, nếu đã xét tới số hạng cuối cùng mà không có sự trùng nhau thì có nghĩa là dãy A không có số hạng nào có giá trị bằng k
Trang 6C¸ch 1: LiÖt kª c¸c b íc
B íc 1: NhËp N, c¸c sè h¹ng a 1 , a 2 , ,…, a…, a, a , a N
vµ gi¸ trÞ kho¸ k;
B íc 2: i 1;
B íc 3: NÕu a i = k th× th«ng b¸o chØ sè i, råi kÕt thóc;
B íc 4: i i+1;
B íc 5: NÕu i > N th× th«ng b¸o d·y A kh«ng cã sè
h¹ng nµo cã gi¸ trÞ b»ng k, råi kÕt thóc;
B íc 6: Quay l¹i B3.
Trang 7Đưaưraưi rồiưkếtưthúc
NhậpưN:5,1,9,7,6
ưvàưk=4
iưư1
a i ư=ưk?
Đ
S
Đ
iưiư+ư1
iư>ư
Nư?
Thôngưbáoưd yưAưkhôngưãy A không
cóưsốưhạngưcóưgiáưtrịư
bằngưk,ưrồiưkếtưthúc S
B1
B2
B3
B4
B5
B6
Cách 2
Vẽ sơ đồ khối
Trang 8NhËpN,a 1 ,a 2 , ,a N
vµk
i1
a i =
k?
§arai råikÕtthóc
§
S
§
ii+1
i>
N?
Th«ngb¸od yAkh«ng·y A kh«ng
cãsèh¹ngcãgi¸trÞ
b»ngk,råikÕtthóc S
6 7
4 1
5
N
NhËpN,5,1,4,7,6
vµk=4
i=1
i1
5=
4?
i 1
K=4
i2
i=2
2>
5?
i1
vµ4
i2
a i =
k?
§arai råikÕtthóc
§
S
§
ii+1
i>
N?
Th«ngb¸od yAkh«ng·y A kh«ng
cãsèh¹ngcãgi¸trÞ
b»ngk,råikÕtthóc S
1=
4?
i3
i=3
3>
5?
NhËpN,5,1,4,7,6
vµ4
i3
a i =
k?
§arai råikÕtthóc
§
S
§
ii+1
i>
N?
Th«ngb¸od yAkh«ng·y A kh«ng
cãsèh¹ngcãgi¸trÞ
b»ngk,råikÕtthóc S
4=
4?
ChØsèi cÇnt×mlµi=3
3 2
Trang 9NhËpN,a 1 ,a 2 , ,a N
vµk
i1
a i =
k?
§arai råikÕtthóc
§
S
§
ii+1
i>
N?
Th«ngb¸od yAkh«ng·y A kh«ng
cãsèh¹ngcãgi¸trÞ
b»ngk,råikÕtthóc S
7 9
1 5
N
NhËpN,5,1,4,7,6
vµk=4
i=1
i1
5=
4?
i 1
K=4
i2
i=2
2>
5?
i1
vµ4
i2
a i =
k?
§arai råikÕtthóc
§
S
§
ii+1
i>
N?
Th«ngb¸od yAkh«ng·y A kh«ng
cãsèh¹ngcãgi¸trÞ
b»ngk,råikÕtthóc S
1=
4?
i3
i=3
3>
5?
NhËpN,5,1,4,7,6
vµ4
i3
a i =
k?
§arai råikÕtthóc
§
S
§
ii+1
i>
N?
Th«ngb¸od yAkh«ng·y A kh«ng
cãsèh¹ngcãgi¸trÞ
b»ngk,råikÕtthóc S
9=
4?
3 2
i4
4>
5?
6
NhËpN:5,1,9,7,6
vµk=4
i4
a i =
k?
§arai råikÕtthóc
§
S
§
ii+1
i>
N?
Th«ngb¸od yAkh«ng·y A kh«ng
cãsèh¹ngcãgi¸trÞ
b»ngk,råikÕtthóc S
i=4
4
7=
4?
i5
5>
5?
NhËpN:5,1,9,7,6
vµk=4
i5
a i =k?
§
S
§
ii+1
i>
N?
Th«ngb¸od yAkh«ng·y A kh«ng
cãsèh¹ngcãgi¸trÞ
b»ngk,råikÕtthóc S
i=5
6=4?
5
i6
6>5?
Th«ngb¸od yAkh«ng·y A kh«ng
cãsèh¹ngcãgi¸trÞ
b»ngk,råikÕtthóc
Trang 10Các tính chất của thuật toán:
Tính dừng
Tính xác định
Tính đúng đắn
Trang 11M« pháng thuËt to¸n t×m kiÕm nhÞ ph©n
10 9
8 7
6 5
4 3
2 1
i
33 31
30 22
21 9
6 5
4 2
A
Víi k = 21 vµ d·y A gåm 10 sè h¹ng nh sau:
vïng t×m kiÕm thu hÑp trong ph¹m vi tõ a6 a10 ;
33 31
30 22
21
L ît thø hai: a gi÷a lµ a 8 = 30; 30 > 21
vïng t×m kiÕm thu hÑp trong ph¹m vi tõ a6 a7 ;
L ît thø ba: a gi÷a lµ a 6 = 21; 21= 21
VËy sè cÇn t×m lµ i = 6.
22 21
6
21
Trang 12Liệt kê các b ớc
B ớc 1: Nhập N, các số hạng a 1 , a 2 , ,…, a…, a, a , a N
và giá trị khoá k;
B ớc 2: Đầu 1, Cuối N;
B ớc 3: Giữa [(Đầu + Cuối)/2];
B ớc 4: Nếu a Giữa = k thì thông báo chỉ số Giữa
rồi kết thúc;
B ớc 5: Nếu a Giữa > k thì đặt Cuối = Giữa - 1 rồi
chuyển sang b ớc 7;
B ớc 6: Đầu Giữa + 1;
B ớc 7: Nếu Đầu Cuối thì thông báo dãy A không có
số hạng có giá trị bằng k, rồi kết thúc;
B ớc 8: Quay lại b ớc 3.
Trang 131 Khái niệm bài toán
Bài toán và thuật Toán
2 Khái niệm thuật toán
Thuật toán giải ph ơng trình bậc hai (a 0) Thuật toán tìm Max của một dãy số.
Thuật toán kiểm tra tính nguyên tố của một
số nguyên d ơng.
Thuật toán sắp xếp bằng tráo đổi.
Thuật toán tìm kiếm tuần tự và nhị phân.