Mô phỏng thuật toán sắp xếp theo phương pháp liệt kê
N=5 và dãy A : 7,6,8,2,5
Cho số nguyên dương N và dãy số nguyên a1,a2,…,aN. Tính tổng của các số dương trong dãy số trên. (2đ)
a. Xác định input và output ?
b. Xây dựng thuật toán cho bài toán trên bằng phương pháp liệt kê (hoặc sơ đồ khối)?
c. Mô phỏng thuật toán với ví dụ dưới đây: Với N =
i | ||||||||
ai | 3 | -4 | 6 | -5 | -12 | 7 | 0 | 8 |
Tổng |
Thực hiện mô phỏng sắp xếp theo thuật toán sắp xếp chọn dãy sau: 4, 5, 2, 1, 3.
- Bước 1: i = 0;
- Bước 2: Tìm phần tử a[min] nhỏ nhất trong dãy hiện hành từ a[i] đến a[n-1].
- Bước 3: Đổi chỗ a[min] và a[i].
- Bước 4: Nếu i < n-1 thì gán i = i+1; rồi lặp lại bước 2, ngược lại -> Dừng.
Xác định bài toán , viết thuật toán bằng phương pháp liệt kê tính hiệu hai số a,b (Mô phỏng bằng 2 bộ số khác nhau :a=5,b=9;a=13,b=8
Bước 1: Nhập a và b
Bước 2: Xuất a-b
Bước 3: kết thúc
Mô phỏng thuật toán sắp xếp dãy số không giảm với N = 10 và dãy A : 6,1,5,3,7,8,10,7,12,4 . Hãy cho biết với lần duyệt thứ mấy để sắp xếp thành 1,3,4,5,6,7,7,8,10,12
#include <bits/stdc++.h>
using namespace std;
long long a[1000],i,n;
int main()
{
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
sort(a+1,a+n+1);
for (i=1; i<=n; i++) cout<<a[i]<<" ";
return 0;
}
10 Mô phỏng thuật toán sắp xếp bằng tráo đồi dãy A{N=7}:7,5,4,8,11,9,2
Hãy mô tả thuật toán tìm giá trị lớn nhất của một dãy số nguyên
1. Xác định Input, Output
2. Mô tả thuật toán bằng cách liệt kê hoặc sơ đồ khối
3. Mô phỏng thuật toán với bộ Input cụ thể
1: Input: Dãy số nguyên
Output: Số lớn nhất
Hãy mô tả thuật toán tìm giá trị lớn nhất của một dãy số nguyên
1. Xác định Input, Output
2. Mô tả thuật toán bằng cách liệt kê hoặc sơ đồ khối
3. Mô phỏng thuật toán với bộ Input cụ thể
1
input: n và dãy a1,a2,a3,...,an
output: số lớn nhất trong dãy a1,a2,...,an
2.
b1: nhập n và gãy a1,a2,...,an
b2: a1<-max; i<-2;
b3: nếu i>n thì kết thúc và in kết quả ra màn hình
b4: nếu ai>max thì max:=a[i];
b5: i<-i+1 quay lại b3
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,dem;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x%2==0) dem++;
}
cout<<dem;
return 0;
}
1. Mô phỏng thuật toán sắp xếp dãy số sau: N=10 Dãy số: 25, 1, 63, 2, 120, 56, 223, 99, 443, 22