K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

15 tháng 10 2021

Bạn ơi bạn tham khảo câu trả lời của mình nhé!

Bước 1: Nhập N và dãy a1, a2,..., aN.

Bước 2: M <- N

Bước 3: Nếu M<2 thì thông báo dãy đã được sắp xếp và kết thúc thuật toán.

Bước 4: M <- M - 1, i <- 0

Bước 5: i <- i + 1

Bước 6: Nếu i > M thì quay lại bước 3.

Bước 7: Nếu ai < ai + 1 thì tráo đổi ai và ai + 1

Bước 8: Quay lại bước 5.

(P/s: nhớ nhờ cô bạn check lại cho mik nhé vì mik đang cần tài liệu học tập. Cảm ơn bạn rất nhiều!!!)

15 tháng 10 2021

bạn cho mik hỏi dấu <- có ý nghĩa là gì vậy ạ

 

31 tháng 10 2021

Bài 1: 

#include <bits/stdc++.h>

using namespace std;

long long a[100],n,i,j,tam;

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;

}

7 tháng 11 2021

Input: N và dãy số nguyên a1, a2,..., aN

Ouput: dãy số sắp xếp theo thứ tự tăng dần

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; 

Bạn có một hoán vị: một mảng a = [a1, a2,…, an] gồm các số nguyên phân biệt từ 1 đến n. Độ dài của hoán vị n là số lẻ. Hãy xem xét thuật toán sắp xếp hoán vị theo thứ tự tăng dần sau đây. Thủ tục trợ giúp của thuật toán, f (i) , nhận một đối số duy nhất i (1≤i≤n − 1) và thực hiện như sau. Nếu ai> ai + 1, giá trị của ai và ai + 1 được trao đổi. Nếu không, hoán vị không thay đổi. Thuật toán bao gồm...
Đọc tiếp

Bạn có một hoán vị: một mảng a = [a1, a2,…, an] gồm các số nguyên phân biệt từ 1 đến n. Độ dài của hoán vị n là số lẻ. Hãy xem xét thuật toán sắp xếp hoán vị theo thứ tự tăng dần sau đây. Thủ tục trợ giúp của thuật toán, f (i) , nhận một đối số duy nhất i (1≤i≤n − 1) và thực hiện như sau. Nếu ai> ai + 1, giá trị của ai và ai + 1 được trao đổi. Nếu không, hoán vị không thay đổi. Thuật toán bao gồm các lần lặp, được đánh số bằng các số nguyên liên tiếp bắt đầu bằng 1 . Trên tôi -lặp lại thứ, thuật toán thực hiện như sau:

nếu tôi là số lẻ, gọi f (1), f (3),…, f (n − 2) ;

nếu tôi là chẵn, gọi f (2), f (4),…, f (n − 1) .

Có thể chứng minh rằng sau một số lần lặp lại hữu hạn, hoán vị sẽ được sắp xếp theo thứ tự tăng dần. Sau bao nhiêu lần lặp lại điều này sẽ xảy ra lần đầu tiên?

Input:

Đầu vào Mỗi thử nghiệm chứa nhiều trường hợp thử nghiệm. Dòng đầu tiên chứa số lượng trường hợp thử nghiệm t (1≤t≤10 ^ 4 ). Sau đây là mô tả các trường hợp kiểm thử. Dòng đầu tiên của mỗi trường hợp kiểm tra chứa một số nguyên n (3≤n≤2⋅10 ^ 5−1; n là lẻ) - độ dài của hoán vị. Dòng thứ hai chứa n các số nguyên phân biệt a1, a2,…, an (1≤ai≤n ) - hoán vị chính nó. Đảm bảo rằng tổng của n trên tất cả các trường hợp thử nghiệm không vượt quá 2⋅10 ^ 5−1

Output:

. Đầu ra Đối với mỗi trường hợp thử nghiệm, in số lần lặp lại mà sau đó hoán vị sẽ được sắp xếp theo thứ tự tăng dần lần đầu tiên. Nếu hoán vị đã cho đã được sắp xếp, hãy in ra 0.

Input:

3
3
3 2 1
7
4 5 7 1 3 2 6
5
1 2 3 4 5


ouput:

3

5

0

Ghi chú Trong trường hợp thử nghiệm đầu tiên, hoán vị sẽ thay đổi như sau: sau 1 lần lặp -st: [2,3,1] ; sau 2 -nd lần lặp: [2,1,3] ; sau 3 -lặp lại thứ ba: [1,2,3] . Trong trường hợp thử nghiệm thứ hai, hoán vị sẽ thay đổi như sau: sau 1 lần lặp -st: [4,5,1,7,2,3,6] ; sau 2 -nd lần lặp: [4,1,5,2,7,3,6] ; sau 3 -lặp lại thứ ba: [1,4,2,5,3,7,6] ; sau 4 -lần lặp thứ: [1,2,4,3,5,6,7] ; sau 5 -lặp lại thứ: [1,2,3,4,5,6,7] . Trong trường hợp thử nghiệm thứ ba, hoán vị đã được sắp xếp và câu trả lời là 0 .

1
29 tháng 8 2021

gốc: https://codeforces.com/problemset/problem/1558/F

Thuật toán sắp xếp của bạn là kiểm tra và đổi chỗ 2 vị trí liền nhau nếu vị trí sau lớn hơn vị trí trước qua n−1n−1 bước

Bước 1 kiểm tra và đổi chỗ n−1n−1 cặp (a1,a2);(a2,a3);..;(an−1,an)(a1,a2);(a2,a3);..;(an−1,an)

Sau bước 1 thì anan là bé nhất

Bước 2 tương tự như vậy nhưng chỉ xét đến an−1

26 tháng 10 2018

B.1 : Nhập N và các số hạng  a 1 , a 2 , . . . . . , a n ;

B.2 : M ← N ;

B.3 : Nếu M ⟨ 2 thì đưa ra dãy A đã được sắp xếp rồi Kết thúc;

B.4 : M ← M-1 ; i ← 0 ;

B.5 : i ← i - 1 ;

B.6 : Nếu i > M thì quay lại bước 3;

B.7 : Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau;

B.8 : Quay lại bước 5;

19 tháng 12 2021

#include <bits/stdc++.h>

using namespace std;

long long a[10000],n,i;

int main()

{

cin>>n;

for (i=1; i<=n; i++)

cin>>a[i];

sort(a+1,a+n+1);

for (i=n; i>=1; i--) cout<<a[i]<<" ";

return 0;

}

#include <bits/stdc++.h>

using namespace std;

double a[100];

int i,n;

int main()

{

cin>>n;

for (i=1; i<=n; i++) cin>>a[i];

for (i=1; i<=n; i++) cout<<a[i]<<" ";

cout<<endl;

for (i=1; i<=n; i++)

swap(a[i],a[n+1-i]);

for (i=1; i<=n; i++) cout<<a[i]<<" ";

return 0;

}

24 tháng 2 2022

bn ơi bn làm bằng pascal đc ko ạ, mik cần cả hai cái lun

 

29 tháng 10 2020

Xác định bài toán:

Input: Dãy n số

Output: Sắp giảm dần của dãy số

Chỉ ra tính dừng của thuật toán

-Bước 1: Nhập n và nhập dãy số

-Bước 2: i←1;

-Bước 3: Nếu a[i]<a[i+1] thì đổi chỗ a[i] và a[i+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 dãy

-Bước 7: Kết thúc

29 tháng 10 2020

giúp e với

31 tháng 12 2021

2:

#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]<<" ";

cout<<endl;

for (i=n; i>=1; i--) cout<<a[i]<<" ";

return 0;

}