Thuật toán để giải 1 bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy, từ input của[r]
Trang 11 Kh¸i niÖm bµi to¸n
Là một việc nào đó mà ta muốn máy tính thực hiện Bài toán được xác định từ 2 thành phần cơ bản
Input:Các thông tin đã có
Output: Các thông tin cần tìm từ input
Bµi 4 Bµi to¸n vµ thuËt To¸n
Ví dụ 1:Tìm UCLN của 2 số nguyên dương M và N
INPUT:2 số nguyên dương M và N
OUTPUT: UCLN của M và N
Ví dụ 2:
Bài toán xếp loại học tập của 1 lớp.
INPUT:Bảng điểm của học sinh trong lớp
OUTPUT:Bảng xếp loại học lực của học sinh
Trang 2Yêu cầu:
Hãy xác định thông tin đưa vào ( Input )
Hãy xác định thông tin cần lấy ra ( Output )
Trang 32.Khái niệm thuật toán:
Thuật toán để giải 1 bài toán là một dãy hữu hạn các thao tác
được sắp xếp theo một trình tự xác định sao cho sau khi thực
hiện dãy thao tác ấy, từ input của bài toán, ta nhận được output
cần tìm
Các tính chất của thuật toán:
Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện các thao tác.
Tính xác định: Sau khi thực hiện một tháo tácthì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để thực hiện tiếp theo.
Tính đúng đắn: Sau khi thuật toán kết thúc, ta phải nhận được
Output cần tìm
Trang 4Có 2 cách thể hiện một thuật toán
Cách 1:liệt kê các bước.
Cách 2:Vẽ sơ đồ khối
Trang 63.Một số ví dụ về thuật toán:
ThuËt to¸n t×m max
Người ta đặt 5 quả bóng có kích thước khác nhau chỉ dùng tay hãy tìm ra quả bóng có kích thước lớn nhất
Trang 7Qu¶ nµy
lín nhÊt
Qu¶ nµy míi lín nhÊt
å! Qu¶ nµy lín h¬n
T×m ra qu¶ lín nhÊt råi!
Cùng tìm thuật toán
MAX
Trang 8Thuật toán tìm MAX của dãy số nguyên
Trang 9Ý TƯỞNG:
Trang 11S
§ S
Trang 12Thuật toán sắp xếp bằng tráo đổi (Exchange Sort)
Xỏc định bài toỏn:
OUTPUT:Dóy A được sắp xếp thành dóy số tăng
Bài toỏn sắp xếp dóy số tăng
Trang 13THUẬT TOÁN SẮP XẾP
Hãy tìm cách sắp xếp học sinh theo thứ tự từ thấp đến cao
Trang 14Với mỗi cặp số hạng đứng liền kề trong dãy, nếu
số trước lớn hơn số sau ta đổi vị trí chúng cho nhau Việc đó được lặp lại cho đến khi không có
sự đổi chỗ nào xảy ra nữa
Ý tưởng
Trang 16Cách 1:Liệt kê các bước
B6:Nếu i >M thì quay lại B3;
B7:Nếu ai > ai+1 thì tráo đổi ai và ai+1cho nhau;
Trang 18THUẬ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,…,aN 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 194 3
2 1
i
51 25
11 8
9 2
4 1
7 5
Với k = 2 và dãy A gồm 10 số hạng như sau:
Trang 20Lầ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
Ý tưởng:
Trang 21B ước 2: i 1;
Bước 6: Quay lại bước 3
Cách 1:Liệt kê các bước
Bước 1:Nhập , các số hạng a1, a2,…,aN và khoá k;
Bước 3: Nếu ai = 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;
Trang 22S
§
Trang 23Xác định Input và Output:
INPUT: 3 số a, b, c
OUTPUT: Max của 3 số đó
Tìm số lớn nhất giữa 3 số a, b, c
Trang 24Bước 1: Nhập a, b, c ;
Bước 3: Nếu b >= Max thì Max b; Bước 4: Nếu c >= Max thì Max c; Bước 5: Đưa ra Max và kết thúc thuật toán
Cách 1:Liệt Kê