Tìm số nhỏ thứ hai trong mảng trong Java
Trong bài viết này, freetuts sẽ giúp bạn tìm ra số nhỏ thứ 2 của mảng trong Java bằng những cách khác nhau, giúp bạn hiểu rõ hơn về các cách sử dụng mảng, collections tối ưu nhất.
4 bước cơ bản để tìm số nhỏ thứ 2 trong Java
Trước tiên, hãy cùng freetuts triển khai các bước chính của thuật toán tìm số nhỏ thứ 2 của mảng trong Java:
- Bước 1: Khởi tạo mảng theo yêu cầu bài toán
- Bước 2: Khởi tạo hàm trả về
int getSecondSmallest(int[] a, int total)
trong đó:int[] a
:mảng cần xéttotal
: chiều dài của mảng cần xét
- Bước 3: Sắp xếp lại mảng cần xét, sau đó trả về giá trị của
a[1]
- Bước 4: Gọi hàm
getSecondSmallest(int[] a, int total)
và in ra kết quả.
Trên đây là 4 bước của thuật toán. Bây giờ chúng ta cùng xem xét các chương trình sử dụng những cách khác nhau.
Tìm số nhỏ thứ 2 của mảng bằng cách sắp xếp cổ điển trong Java
/** * học lập trình cùng Freetuts Freetuts.net */ public class SecondSmallestInArrayExample { public static int getSecondSmallest(int[] a, int total) { int temp; for (int i = 0; i < total; i++) { for (int j = i + 1; j < total; j++) { if (a[i] > a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } } return a[1]; } public static void main(String args[]) { int a[] = {1, 2, 5, 6, 3, 2}; int b[] = {44, 66, 99, 77, 33, 22, 55}; System.out.println("Số nhỏ thứ 2 của Mảng a: " + getSecondSmallest(a, a.length)); System.out.println("Số nhỏ thứ 2 của Mảng b: " + getSecondSmallest(b, b.length)); } }
Chương trình trên là một chương trình java cơ bản sử dụng vòng lặp để sắp xếp và trả về giá trị a[1] sau khi đã sắp xếp xong. Đây là một cách triển khai thuật toán sắp xếp kinh điển với những người mới bắt đầu.
Bài viết này được đăng tại [free tuts .net]
Tìm số nhỏ thứ 2 của mảng bằng Arrays trong Java
Tiếp theo, hãy xem một ví dụ về cách sử dụng Arrays để tìm số nhỏ thứ 2 trong mảng Java.
/** * học lập trình cùng Freetuts * Freetuts.net */ import java.util.*; public class SecondSmallestInArrayExample { public static int getSecondSmallest(int[] a, int total) { Arrays.sort(a); return a[1]; } public static void main(String args[]) { int a[] = {1, 2, 5, 6, 3, 2}; int b[] = {44, 66, 99, 77, 33, 22, 55}; System.out.println("Số nhỏ thứ 2 của Mảng a: " + getSecondSmallest(a, a.length)); System.out.println("Số nhỏ thứ 2 của Mảng b: " + getSecondSmallest(b, b.length)); } }
Kết quả:
Chương trình này được đăng tại Freetuts.net Số nhỏ thứ 2 của Mảng a: 2 Số nhỏ thứ 2 của Mảng b: 33
Ở ví dụ này, freetuts sử dụng hàm getSecondSmallest lấy ra phần tử a[1] sau khi sử dụng hàm Arrays.sort(a) để sắp xếp mảng a[] thành mảng tăng dần. Nếu nhìn code thì khá ngắn gọn, dễ hiểu. Qua đó giúp chúng ta hiểu hơn về cách sử dụng Arrays.
Tìm số nhỏ thứ 2 của mảng bằng Collections trong Java
Tiếp theo, hãy xem một ví dụ về cách sử dụng Collections để tìm số nhỏ thứ 2 trong mảng Java.
/** * học lập trình cùng Freetuts Freetuts.net */ import java.util.*; public class SecondSmallestInArrayExample { public static int getSecondSmallest(Integer[] a, int total) { List<Integer> list = Arrays.asList(a); Collections.sort(list); int element = list.get(1); return element; } public static void main(String args[]) { Integer a[] = {1, 2, 5, 6, 3, 2}; Integer b[] = {44, 66, 99, 77, 33, 22, 55}; System.out.println("Số nhỏ thứ 2 của Mảng a: " + getSecondSmallest(a, a.length)); System.out.println("Số nhỏ thứ 2 của Mảng b: " + getSecondSmallest(b, b.length)); } }
Kết quả:
Chương trình này được đăng tại Freetuts.net Số nhỏ thứ 2 của Mảng a: 2 Số nhỏ thứ 2 của Mảng b: 33
Ở ví dụ này, freetuts sử dụng interface List để có thể kế thừa các tính chất của List. Sau đó sort List để lấy ra phần tử có index là 1. Cách này khá hay và giúp chúng ta hiểu hơn về Collections.
Tổng kết
Qua bài toán trên, freetuts đã giới thiệu cho bạn các cách để tìm một số nhỏ thứ 2 trong mảng, qua đó giúp bạn hiểu thêm về cách sử dụng Arrays và Collections trong Java để các bạn có thể áp dụng vào các chương trình khó và phức tạp hơn. Chúc các bạn thực hiện thành công.