Trình bày giải thuật sắp xếp phân đoạn (Quick Sort) để sắp xếp dãy số nguyên a1, a2, ..., an thành dãy không tăng.
số tự chọn ạ
Bài 1. Cho dãy số a1,a2,...an. Sắp xếp thành dãy giảm dần Bài 2. Cho dãy a1,a2,a3...an gồm n số nguyên dương. -Sắp xếp các số chẵn về đầu hàng tăng dần -Sắp xếp các số lẻ về cuối hàng giảm dần GIÚP EM VỚI Ạ :(((
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;
}
vieết chương trình nhập số tự nhiên n và dãy các số nguyên a1,a2,..,an từ bàn phím sắp xếp các số âm trong dãy theo thứ tự tăng , các số , còn lại giữ nguyên thứ, thông báo ra màn hình dãy sau khi đã sắp xếp . ràng buộc 0<=n<=10, |ai|<=10^4
ai giúp mình với ạ mình cần gấp lắm ạ
Cho dãy A gồm N số nguyên a1 a2...aN hãy sắp xếp theo thứ tự tăng dần. Xác định bài toán ,giải bằng cách liệt kê. Giúp em với ạ
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;
Sắp xếp dãy số Tên chương trình: sorting.pas
Cho dãy N số nguyên a1, a2,..., an. Hãy sắp dãy số đã cho theo thứ tự tăng dần các số lẻ
và giảm dần các số chẵn?
Dữ liệu vào: File sorting.inp gồm hai dòng
+ Dòng 1: ghi số nguyên N (0< N<1000)
+ Dòng 2: ghi N số a1, a2,...< aN (với ai <=109
)
Dữ liệu ra: File sorting.out gồm hai dòng
+ Dòng 1: Ghi các số lẻ tăng dần
+ Dòng 2: ghi các số chẵn giảm dần
Ví dụ:
Sorting.inp Sorting.out
6
2 3 5 1 4 6
1 3 5
6 4 2
Dưới đây là mã chương trình Pascal để sắp xếp dãy số theo yêu cầu đã cho:
```pascal
program sorting;
const
MAX_N = 1000;
var
N, i, j, temp: integer;
arr: array[1…MAX_N] of integer;
oddArr, evenArr: array[1…MAX_N] of integer;
oddCount, evenCount: integer;
inputFile, outputFile: text;
begin
// Mở file input và đọc dữ liệu
assign(inputFile, 'sorting.inp');
reset(inputFile);
readln(inputFile, N);
for i := 1 to N do
read(inputFile, arr[i]);
close(inputFile);
// Sắp xếp mảng theo yêu cầu
oddCount := 0;
evenCount := 0;
for i := 1 to N do
begin
if arr[i] mod 2 = 1 then
begin
oddCount := oddCount + 1;
oddArr[oddCount] := arr[i];
end
else
begin
evenCount := evenCount + 1;
evenArr[evenCount] := arr[i];
end;
end;
// Sắp xếp mảng số lẻ tăng dần
for i := 1 to oddCount - 1 do
for j := i + 1 to oddCount do
if oddArr[i] > oddArr[j] then
begin
temp := oddArr[i];
oddArr[i] := oddArr[j];
oddArr[j] := temp;
end;
// Sắp xếp mảng số chẵn giảm dần
for i := 1 to evenCount - 1 do
for j := i + 1 to evenCount do
if evenArr[i] < evenArr[j] then
begin
temp := evenArr[i];
evenArr[i] := evenArr[j];
evenArr[j] := temp;
end;
// Mở file output và ghi kết quả
assign(outputFile, 'sorting.out');
rewrite(outputFile);
for i := 1 to oddCount do
write(outputFile, oddArr[i], ' ');
writeln(outputFile);
for i := 1 to evenCount do
write(outputFile, evenArr[i], ' ');
close(outputFile);
end.
```
Bạn có thể sao chép mã chương trình trên vào một tệp tin có tên `sorting.pas`, sau đó tạo một tệp tin `sorting.inp` và nhập dữ liệu theo định dạng đã cho. Chạy chương trình và kết quả sẽ được ghi vào tệp tin `sorting.out`.
var i,n:longint; a:array[1..1000] of longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do
if a[i] mod 2=0 then
begin
inc(k);
b[k]:=a[i];
end
else
begin
inc(t);
c[t]:=a[i];
end;
for i:=1 to k-1 do
for j:=i+1 to k do
if b[i]<b[j] then
begin
d:=b[i];
b[i]:=b[j];
b[j]:=d;
end;
for i:=1 to t-1 do
for j:=i+1 to t do
if c[i]>c[j] then
begin
d:=c[i];
c[i]:=c[j];
c[j]:=d;
end;
for i:=1 to k do write(b[i],' ');
for i:=1 to t do write(c[i],' ');
end.
Cho dãy a gồm n số nguyên a1..an. Sắp xếp dãy a theo chiều không tăng. In dãy vừa sắp xếp ra màn hình
Câu 2: Cho dãy A gồm N số nguyên a1, a2,…,an . Em hãy sắp xếp dãy số A thành dãy không tăng(KHÔNG GIẢM).Câu 3: Cuối năm học lớp 10 các bạn trong lớp đều có điểm trung bình môn. Ví dụ bạn A: 8.5, B:9.4, C: 7.8 ..., em hãy xây dựng thuật toán tìm ra bạn có điểm cao nhất.
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;
}
Bài 3. Viết chương trình nhập từ bàn phím dãy số thực có N phần tử (1<N<100). hãy in ra màn hình
a. dãy số ban đầu đã nhập
b. dãy số đã sắp xếp lại. biết sắp xếp các phần tử theo nguyên tắc sau: a1 đổi chỗ cho an, a2 đổi chỗ cho an-1,...
Giúp mik với ạ!!! Mik cần gấp!!!Mik xin cảm ơn trước ạ!!!
#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;
}
Help me ( ngôn ngữ lập trình c++)
Câu 3. Cho dãy Số nguyên a1, a2, ... aN. Hãy tìm một số x có trong dãy hay không. Nếu có hãy in ra vị trí cuối của X trong dãy.
Câu 4. Cho dãy số nguyên al, a2, ...aN. Hãy in ra dãy đã được sắp xếp không giảm.
Câu 5. Cho dãy số nguyên al, a2, ... aN. Cho một số nguyên K. Kiểm tra xem có tồn tại trong dãy 2 số ai và aj (i !=j) sao cho trung bình cộng của 2 số này có bằng K hay không
3:
#include <bits/stdc++.h>
using namespace std;
int A[100],i,n,x,kt;
int main()
{
cin>>n;
for (int i=1; i<=n; i++) cin>>A[i];
cin>>x;
kt=0;
for (int i=1; i<=n; i++)
if (A[i]==x) then kt=1;
if (kt==0) cout<<"NO";
else
{
for (int i=n; i>=1; i--)
if (A[i]==x)
{
cout<<A[i];
return 0;
}
}
return 0;
}
4:
#include <bits/stdc++.h>
using namespace std;
int A[100],i,n;
int main()
{
cin>>n;
for (int i=1; i<=n; i++)
cin>>A[i];
sort(A+1,A+n+1);
for (int i=1; i<=n; i++)
cout<<A[i]<<" ";
return 0;
}
hãy trình bày diễn biến từng bước của thuật toán sắp xếp chọn dần áp dụng cho dãy số 11 70 52 20 39 18 để được dãy số tăng dần