Chủ Nhật, 21 tháng 7, 2019

Bài 25 - Giải thuật nhập môn

Cho bảng A các số nguyên A(n*m). Hãy dùng phép hoán vị hai phần tử trong bảng để sắp xếp đưa các phần tử chẵn về đầu bảng theo thứ tự từ trái sang phải, từ trên xuống dưới, sao cho “số lần hoán vị giữa 2 phần tử trong bảng là ít nhất”
Ví dụ:
- Ma trận 3*3:  Kết quả
10       52    12 - Số lần hoán vị : 1 lần
152    11     25 10     52    12
16      -27    21 152   16     25
                           11    -27    21

1 nhận xét:

  1. Uses crt;
    Var f:array[1..10000] of longint;
    n,i,j,dem,tam:longint;
    Begin
    readln(n);
    For i:=1 to n*n do
    readln(f[i]);
    For i:=1 to n*n do
    If (f[i] mod 2<>0) then
    For j:=n*n downto i do
    If (f[j] mod 2=0) then
    Begin
    tam:=f[j];
    f[j]:=f[i];
    f[i]:=tam;
    dem:=dem+1;
    break;
    end;
    Writeln(dem);
    For i:=1 to n*n do
    Begin
    Write(f[i]:4);
    If (i mod n=0) then writeln;
    end;
    readln;
    end.

    Trả lờiXóa

Dùng nick gmail để bình luận. Nếu lần đầu tiên bạn làm điều này thì hệ thống sẽ chuyển bạn sang trang blogger và hỏi bạn chọn tên hiển thị là gì. Bạn hãy nhập tên hiển thị rồi ok là được. Những lần bình luận sau hệ thống sẽ không hỏi nữa. Cảm ơn!

Bài được xem nhiều nhất