一道演算法題
阿新 • • 發佈:2018-12-03
關於陣列!!!
//問題:給你n個無序的int整型陣列arr,並且這些整數的取值範圍都在0-20之間,要你在 O(n) 的時間複雜度中把這 n 個數按照從小到大的順序打印出來。
//問題:給你n個無序的int整型陣列arr,並且這些整數的取值範圍都在0-20之間,要你在 O(n) 的時間複雜度中把這 n 個數按照從小到大的順序打印出來。 public class Test2 { public void f(int arr[]) { int[] temp = new int[21]; for (int i = 0; i < arr.length; i++) { temp[arr[i]]++; } // 順序列印 for (int i = 0; i < 21; i++) { for (int j = 0; j < temp[i]; j++) { System.out.println(i); } } } public static void main(String[] args) { int arr[] = { 1, 2, 3, 4, 8, 9, 10, 6, 7, 1 }; arr[1]++; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } Test2 test2 = new Test2(); test2.f(arr); } }