Cách so sánh min max trong array java năm 2024

Phương thức max() trong Java trả về số lớn nhất trong hai tham số. Tham số có thể là int, float, long, double.

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Cách so sánh min max trong array java năm 2024

Cách so sánh min max trong array java năm 2024

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Thông thường với bài toán đơn giản này chúng ta mất 1 vòng lặp, mỗi lần lặp cần 2 phép so sánh, vị chi là 2n phép so sánh. Tuy nhiên, có cách mà chỉ mất 3n/2 phép so sánh. Thật vậy, chú ý rằng để tìm min max 2 số ta chỉ cần 1 phép so sánh, tìm min max của dãy n số (a1, a2, a3, … an) theo cách như sau:

Xét n/2 nhóm 2 số sau: (a1, a2); (a3, a4); (a5, a6); … để tìm min max của hết mỗi nhóm cần n/2 phép so sánh. Đánh số các nhóm này là: b1, b2, …, b[n/2]. Lúc này ở mỗi nhóm ta đều biết min và max của nhóm đó.

Lại chia nhóm tiếp: (b1, b2); (b3, b4); (b5, b6); … có n/4 nhóm, để tìm min max của mỗi nhóm ta cần 2 phép so sánh (1 phép cho 2 min, 1 phép cho 2 max). Tổng cộng là 2 * (n/4) = n/2 phép so sánh.

Lặp lại quá trình trên, ta có số các phép so sánh tiếp theo tính được là n/4, n/8, n/16, n/32, …

Tổng số phép so sánh là: n/2 + n/2 + n/4 + n/8 + n/16 + n/32 + … dễ thấy = 3n/2. Đây chỉ là 1 phép tính giới hạn (lim) đơn giản.

Ví dụ sau minh họa cách sử dụng phương thức min và max để tìm lớn nhất và nhỏ nhất trong List trong Java.

import java.util.*; public class Main { public static void main(String[] args) {

  List list = Arrays.asList("one Two three Four five six
  one three Four".split(" "));
  System.out.println(list);
  System.out.println("max: " + Collections.max(list));
  System.out.println("min: " + Collections.min(list));
} }

Kết quả

Quảng cáo

Code trên sẽ cho kết quả sau:

[one, Two, three, Four, five, six, one, three, Four] max: three min: Four

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Cách so sánh min max trong array java năm 2024

Cách so sánh min max trong array java năm 2024

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Java thực hiện tìm và in ra giá trị nhỏ nhất của mảng các số nguyên. Yêu cầu kiến thức:

  • Xác định đúng kiểu dữ liệu các biến
  • Thuật toán tìm kiếm giá trị nhỏ nhất

Code tham khảo dưới đây được viết trên JDK ver 8.x:

  
package timoday;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {  
        Scanner sc = new Scanner(System.in);
        System.out.print("Nhap vao so luong phan tu: n = ");  
        int n = sc.nextInt();
        int[] a = new int[n];
        System.out.println("Nhap vao mang cac so nguyen:");  
        for (int i = 0; i < n; i++) {  
            System.out.print("\tPhan tu thu " + (i + 1) + " la: ");  
            a[i] = sc.nextInt();  
        }
        System.out.println("Mang vua nhap la:");  
        for (int i = 0; i < n; i++) {  
            System.out.print(a[i] + "\t");  
        }
        int min = a[0];  
        for (int i = 1; i < n; i++) {  
            if (min > a[i]) {  
                min = a[i];  
            }  
        }
        System.out.println("\nPhan tu nho nhat cua mang la:" + min);
        sc.close();  
    }  
}

Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây

Các thẻ: lap trinhLập trình Java

Có thể bạn sẽ thích…