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
Mô phỏng thuật toán sắp xếp tráo đổi với dãy
A: 1 - 5 - 4 - 3 - 2 - 1 - 0 - 8 - 6
#include <bits/stdc++.h>
using namespace std;
long long a,b;
int main()
{
cin>>a>>b;
cout<<a<<" "<<b<<endl;
swap(a,b);
cout<<a<<" "<<b;
return 0;
}
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;
}
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
hãy phỏng thuật thuật toán sắp xếp tráo đổi với bộ dữ liệu sau n= 10 gồm { -1 5 90 82 -22 20 45 68 1 55}
1. thuật toán đếm số lượng phần tử bằng k trong dãy số nguyên.
2. mô phỏng thuật toán sắp xếp dãy giảm với bộ dữ liệu thử.
1:
-Bước 1: Nhập n và nhập dãy số, nhập k
-Bước 2: dem←0; i←1;
-Bước 3: Nếu a[i]=k thì dem←dem+1;
-Bước 4: i←i+1;
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: Xuất dem
-Bước 7: Kết thúc
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.
Mọi người giúp em với được không ạ!
ĐỀ 1: CHẠY THUẬT TOÁN MÔ PHỎNG SẮP XẾP DÃY SỐ THEO DỮ KIỆN SAU:
Input: N = 8; A = [ 8 9 3 6 5 2 7 4 ]
Output: A = [ 2 3 4 5 6 7 8 9 ]
Duyệt 1:
#include <bits/stdc++.h>
using namespace std;
long long a[1000],n,i,tam,j;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
cin>>a[i];
for (i=1; i<=n-1; i++)
for (j=i+1; j<=n; j++)
if (a[i]>a[j]) swap(a[i],a[j]);
for (i=1; i<=n; i++)
cout<<a[i]<<" ";
return 0;
}
Xây dựng thuật toán sắp xếp bằng tráo đổi một dãy số ko tăng.
-Xác định input, output
-Xác định ý tưởng
-Xác định thuật toán
#include <bits/stdc++.h>
using namespace std;
long long a[100],n,i,j;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
cin>>a[i];
for (i=1; i<=n-1; i++)
for (j=i+1; j<=n; j++)
if (a[i]<a[j]) swap(a[i],a[j]);
for (i=1; i<=n;i++)
cout<<a[i]<<" ";
return 0;
}
Cho dãy A gồm các số sau: 4 7 9 1 6 3
Dựa vào thuật toán sắp xếp bằng tráo đổi để được 1 dãy tăng, hãy cho biết dãy thu được sau lần duyệt 1 và duyệt 2?