Đây cách em tôi bảo đây.
Mấy ông trên quăng gạch ghê quá nên code vậy.
Solution dùng couting sort, độ phức tạp O(N) O(L) với L là giới hạn giá trị của phần tử trong mảng.
Ví dụ giới hạn giá trị từ 0 - 10000.
Code: class HelloCodiva { //Đầu bài mảng N phần tử, giá trị mỗi phần tử trong khoảng từ 1 đến 10000 = L static int L = 10000; public static void main(String[] args) { int[] array1 = {1, 2, 3, 4}; int[] array2 = {1, 3, 4, 5, 6, 9}; int[] array3 = {2, 4, 8, 9, 3}; System.out.println(findMin(array1)); System.out.println(findMin(array2)); System.out.println(findMin(array3)); } //counting sort public static int findMin(int[] array){ int[] count = new int[L 1]; for(int i = 0; i < array.length; i ){ count[array] ; } for(int i = 1; i <= L; i ){ if(count == 0){ return i; } } return L 1; } } Code: 5 2 1 Completed with exit code: 0