nhập vào một dãy số nguyên n in ra màn hình dãy số theo thứ tự giảm dần
0 bình luận về “nhập vào một dãy số nguyên n in ra màn hình dãy số theo thứ tự giảm dần”
//danhle
var a,b:array[1..1000] of int64;n,d,d1:int64; Procedure sxn(l,h:longint); Var i,j:longint; x,tg:int64; Begin i:=l; j:=h; x:=a[(l+h) div 2]; Repeat while a[i]<x do inc(i); while a[j]>x do dec(j); if i<=j then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; inc(i); dec(j); end; until i>j; if i<h then sxn(i,h); if j>l then sxn(l,j); End; var i,j,s:longint; begin read(n); for i := 1 to n do begin read(a[i]); end; sxn(1,n); for i := 1 to n do begin write(a[i],’ ‘); end; end.
Bạn tham khảo code mình nha qui tắc quicksort tách phần tử trung gian nếu ai < trung gian ném qua trái còn lại ném qua phải là xong nhaaa.
//danhle
var a,b:array[1..1000] of int64;n,d,d1:int64;
Procedure sxn(l,h:longint);
Var
i,j:longint;
x,tg:int64;
Begin
i:=l; j:=h; x:=a[(l+h) div 2];
Repeat
while a[i]<x do inc(i);
while a[j]>x do dec(j);
if i<=j then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
inc(i); dec(j);
end;
until i>j;
if i<h then sxn(i,h);
if j>l then sxn(l,j);
End;
var i,j,s:longint;
begin
read(n);
for i := 1 to n do
begin
read(a[i]);
end;
sxn(1,n);
for i := 1 to n do
begin
write(a[i],’ ‘);
end;
end.
Bạn tham khảo code mình nha qui tắc quicksort tách phần tử trung gian nếu ai < trung gian ném qua trái còn lại ném qua phải là xong nhaaa.
@Danhle
program giam_dan;
uses crt;
var A:array[1..1000] of integer;
n,i,j,tg:integer;
begin
clrscr;
write(‘Nhap n: ‘); readln(n);
for i:=1 to n do
begin
write(‘Nhap so thu ‘,i,’: ‘); readlnA[i]);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if A[i]<A[j] then
begin
tg:=A[i];
A[i]:=A[j];
A[j]:=tg;
end;
write(‘Say theo thu tu giam dan la: ‘);
for i:=1 to n do write(A[i],’ ‘);
readln;
end.