1. 程式人生 > >一道演算法題

一道演算法題

關於陣列!!!

//問題:給你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);
	}
}