Câu hỏi: Thuật toán bao gồm các tính chất nào A. Tính dừng, tính liệt kê, tính đúng đắn B. Tính dừng, tính xác định, tính đúng đắn C. Tính xác định, tính liệt kê, tính đúng đắn D. Tính xác định, tính liệt kê, tính dừng Đáp án B. Một thuật toán sẽ bao gồm các tính chất sau đây: – Tính chính xác: Là yếu tố quan trọng hàng đầu, đảm bảo cho kết quả và thao tác thực hiện của máy tính được thực hiện hiệu quả, khả thi. – Tính rõ ràng: Thuật toán được thực hiện trên nguyên tắc lệnh. Vì vậy các câu lệnh cần được đưa ra một cách rõ ràng, dễ hiểu và swps xếp theo trình tự nhất định. – Tính khách quan: Thuật toán dù được thực hiện bởi máy tính hay con người đều phải đưa ra kết quả duy nhất, giống nhau. Nếu kết quả được đưa ra bởi 2 phương pháp này không tương đồng, chứng tỏ thuật toán cần được xem xét lại. – Tính phổ dụng: Thuật toán đòi hỏi tính ứng dụng cao. Nó không chỉ sử dụng đối với bài toán nhất định mà được dùng để giải quyết nhiều dạng tương tự. – Tính kết thúc: Thuật toán là một tập hợp hữu hạn vì vậy nó luôn có điểm kết thúc. Điểm kết thúc ở đây được hiểu là khi đã tìm ra kết quả phù hợp.
BÀI 4. BÀI TOÁN VÀ THUẬT TOÁN 1. Khái niệm bài toán- Bài toán là một việc nào đó ta muốn máy tính thực hiện. Ví dụ: Giải phương trình bậc 2, quản lý nhân viên… - Các bài toán được cấu tạo bởi 2 thành phần cơ bản:
2. Khái niệm thuật toán- Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo 1 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 ra Output cần tìm. - Ví dụ: Tìm giá trị lớn nhất của 1 dãy số nguyên. => Ta có 3 bước thực hiện như sau: * Xác định BT - Input: Số nguyên dương N và dãy N số nguyên a1, a2, …, aN. - Output: Giá trị lớn nhất Max của dãy số. * Ý tưởng - Khởi tạo giá trị Max = a1. - Lần lượt với i từ 2 đến N so sánh ai với Max, nếu ai>Max thì Max= ai. * Thuật toán: Cách liệt kê:
Cách lập sơ đồ khối: - Thuật toán còn được diễn tả bằng sơ đồ khối. - Quy định:
Ví dụ: Mô phỏng việc thực hiện thuật toán với N=8 và dãy số: 5, 1, 4, 7, 6, 3, 15, 11
=> Các tính chất của thuật toán:
3. Một số ví dụ về thuật toánVí dụ 1: Kiểm tra tính nguyên tố của một số nguyên dương. - Xác định bài toán:
- Ý tưởng: Ta nhớ lại định nghĩa: Một số nguyên dương N là số nguyên tố nếu nó có đúng 2 ước số khác nhau là 1 và chính nó. Do đó ta có:
- Thuật toán:
Ví dụ 2: Bài toán sắp xếp Cho dãy A gồm N số nguyên a1, a2, a3, …,aN. Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm (tức là số hạng trước không lớn hơn số hạng sau) - Xác định bài toán:
Thuật toán sắp xếp bằng tráo đổi (Exchange Sort) - Ý tưởng: Với 2 số liền kề, nếu số trước lớn hơn số sau ta đổi chổ cho nhau. Việc đó lặp lai, khi không còn sự đổi chổ nào nữa. - Thuật toán Cách liệt kê:
Ví dụ 3: Bài toán tìm kiếm Cho dãy A gồm N số nguyên khác nhau: a1…aN. và một số nguyên k. Cần biết có hay không chỉ số i mà ai=k. Nếu có hãy cho biết chỉ số đó. Thuật toán tìm kiếm tuần tự: - Xác định bài toán
- Ý 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á cho đến khi hoặc gặp một số hạng bằng khoá hoặc dãy đã được xét hết và không có giá trị nào bằng khoá. Trong trường hợp thứ 2 dãy A không có số hạng nào bằng khoá... - Thuật toán Liệt kê:
Dãy A có N = 7 khóa k = 10 Tìm chỉ số i để ai = k.
Ghi chú: k = 10 → i = 6 Trong thuật toán trên, i là biến chỉ số và nhận giá trị nguyên lần lượt từ 1 đến N + 1 |