一道算法题

版权声明:原创文章转载请声明出处https://blog.csdn.net/qq_40374604 https://blog.csdn.net/qq_40374604/article/details/84664968

关于数组!!!

//问题:给你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);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_40374604/article/details/84664968