[Mảng một chiều] – Tìm phần tử lớn nhất trong mảng

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:
    1. Bạn đầu bạn xem phần tử đầu tiên là lớn nhất
    2. 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.
    3. Kết thúc quá trình đó bạn sẽ có phần tử lớn nhất
    4. 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:

Dry Run-Tim phan tu lon nhat trong mang

Bạn thay đổi chương trình trên để tìm phần tử nhỏ nhất trong mảng.

Bài tiếp: Sắp xếp các phần tử trong mảng

Bài trước: Các thuật toán cơ bản về mảng một chiều

Đối tác tuyển dụng