mô tả thuật toán sắp xếp giảm dần trên 1 dãy số cụ thể trong mảng A: 3 2 5 8 9

mô tả thuật toán sắp xếp giảm dần trên 1 dãy số cụ thể trong mảng A: 3 2 5 8 9

0 bình luận về “mô tả thuật toán sắp xếp giảm dần trên 1 dãy số cụ thể trong mảng A: 3 2 5 8 9”

  1. Mô tả thuật toán: cho i chạy từ 1 đến n-1, cho j chạy từ i+1 đến n (2 lệnh lồng nhau), nếu A[i]>A[j] thì đổi vị trí lại cho nhau.

    Chương trình

    program sapxep;

    uses crt;

    var A:array[1..1000] of integer;

          n,i,j,tg:integer;

    begin

         clrscr;

         write(‘Nhap so luong phan tu: ‘);   readln(n);

         for i:=1 to n do

              begin

                   write(‘A[‘,i,’]= ‘);   readln(A[i]);

              end;

         write(‘Mang vua nhap la: ‘);  

         for i:=1 to n do

              write(A[i],’ ‘);

         writeln;

         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(‘Mang sau khi sap xep la: ‘);

         for i:=1 to n do write(A[i],’ ‘);

         readln;

    end.

    Bình luận
  2. Thuật toán:

    – Cho biến i chạy từ 1 -> n-1 (vì đi đến số gần cuối sẽ xét số cuối nên sẽ là n-1)

    – Cho biến j:=i+1 chạy đến n (vì j là biến xét từng số theo từ a[2] trở đi, còn i là ở a[1])

    – Xét a[i]>a[j] thì có nghĩa là a[i] chưa nhỏ nhất, nếu có 1 số a[j]<a[i] thì hoán đổi hai số

    Chương trình:

    uses crt;
    var a:array[1..10000] of longint;
            n,i,j,k:longint;
    begin
            clrscr;
            write(‘Nhap so luong phan tu: ‘); readln(n);
            for i:=1 to n do
                    begin
                            write(‘Nhap phan tu thu ‘,i,’: ‘); readln(a[i]);
                    end;
            for i:=1 to n-1 do
                    for j:=i+1 to n do
                            if a[i]>a[j] then
                                    begin
                                            k:=a[i];
                                            a[i]:=a[j];
                                            a[j]:=k;
                                    end;
            write(‘Day tang dan: ‘);
            for i:=1 to n do write(a[i],’ ‘);
            readln;
    end.

    Bình luận

Viết một bình luận