Tìm phần tử lớn nhất, nhỏ nhất trong mảng là bài toán thường gặp trong thực tế khi bạn làm việc với mảng.
Yêu cầu
Viết chương trình khởi tạo một mảng n phần tử số nguyên, sau đó tìm và in ra phần tử lớn nhất có trong mảng.
Phân tích và tìm cách giải
- Đầu vào: mảng các phần tử a[] ={1,2,3,7,9,12,15}
- Đầu ra: In ra phần tử lớn nhất trong mảng
- Phân tích:
- Bạn đầu bạn xem phần tử đầu tiên là lớn nhất
- Sau đó duyệt từ phần tử thứ 2 trở đi nếu có phần tử lớn hơn phần tử lớn nhất thì gán phần tử đó cho phần tử lớn nhất.
- Kết thúc quá trình đó bạn sẽ có phần tử lớn nhất
- Thuật toán này gọi là thuật toán lính canh
Các bước thực hiện
Khởi tạo mảng a[]
Khai báo biến max và cho bằng a[0]
Cho lặp biến i từ 1đến n-1, với n là kích thước của mảng
Nếu a[i] >max thì
max=a[i]
In max ra, chính max là giá trị lớn nhất của các phần tử trong mảng.
Cách biểu diễn thuật toán
Trong trường hợp này, tôi sử dụng ngôn ngữ giả.
Declare int a[]={1,3,2,15, 7,12,9},I, max
max= a[0] //xem phần tử đầu tiên là lớn nhất
Loop i=1 to a.lengh -1
If(a[i]>x)
x=a[i]
Print ‘Giá trị lớn nhất trong mảng là: ’ + max
Bạn có thể download đoạn chương trình bằng Java ở đây.
Kết quả Dry Run cho thuật toán này:
Bạn thay đổi chương trình trên để tìm phần tử nhỏ nhất trong mảng.