Giúp em với ạ,e cần gấp lắm ạ. Viết thuật toán tìm xem trong dãy A gồm n phần tử từ a1 đến n có hay không phần tử có giá trị 0,đếm số lượng phần tử 0 có trong dãy A cho trước
1 câu trả lời
* Quy định:
+ Hình ô van : các thao tác nhập, xuất dữ liệu.
+ Hình thoi :Thao tác so sánh.
+ Hình chữ nhật : :Các phép toán.
+ Mũi tên : trình tự thực hiện các thao tác.
* 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 thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để được 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.
- Một số ví dụ về thuật toán:
Ví dụ 1: Bài toán sắp xếp:
Cho dãy A gồm N số nguyên a1…aN. Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm (số hạng trước không lớn hơn số hạng sau).
Thuật toán sắp xếp bằng tráo đổi:
+ Xác định bài toán
- Input: dãy A gồm N số nguyên a1…aN
- Output: dãy A được sắp xếp lại thành dãy không giảm
+ Ý tưởng: vớ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 thì ta đổi chổ chúng . Việc đó lặp lại cho đến khi không có sự đổi chổ nào xảy ra nữa.
+ Thuật toán
- Liệt kê:
B1: Nhập vào n và dãy số nguyên a1, . . . ,aN;
B2: MßN;
B3: Nếu M<2 thì in dãy đã sắp xếp rồi kết thúc;
B4. M ßM – 1; i ß0;
B5: i ßi + 1;
B6: Nếu i > M thì quay lại bước 3;
B7. Nếu ai > ai+1 thì tráo đổi cho nhau;
B8: Quay lại bước 5;