Tải bản đầy đủ (.doc) (4 trang)

Thuật toán tìm MAX nhiều số (cơ bản nhưng không dễ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (154.15 KB, 4 trang )

Thuật toán tìm MAX nhiều số - cơ bản nhưng
không phải dễ hiểu
Giải thuật:

mình có 1 dãy các số a,b,c,d,e,f,i,…


giả sử ban đầu a là số lớn nhất. Gán max = a

Sau đó lần lượt so sánh max với các số còn lại nếu số nào lớn hơn max
thì ta gán max = số đó




VD: ta có c > max => max = c (nếu c <= max thì ko làm gì hết nhé)

Thay vì sử dụng các biến lẻ, chúng ta có thể áp dụng bài toán với mảng sẽ dễ
thực hiện hơn vì có thể dùng vòng lặp.
Hình mô tả thuật toán:



Cài đặt thuật toán với biến riêng lẻ:
Code demo:
max = a;
if(maxif(maxif(maxif(maxif(max


….

(muốn bao nhiêu biến thì cứ thế mà làm)
Cài đặt thuật toán với mảng:
Code demo:
max = a[0];
for(i=1; iif (maxmax = a[i];

(vì mình đã gán max khởi đầu bằng a[0] nên mình xuất phát từ vị trí phần tử
thứ 1 để tiết kiệm tài nguyên)
Ngoài ra:
Ta cũng có thể sử dụng 1 biến (ko tính biến max) để tìm số lớn nhất của nhiều
số


Code demo:
a = System.ReadLine(); // đọc số do người dùng nhập vào
max = a;
for(i=1; i < n; i++) //n là số các số nhập vào
{
a = System.ReadLine();
if (max < a)
max = a;
}

Với tìm MIN cũng tương tự nhé các bạn, chỉ việc đổi dấu < thành dấu > thôi.




×