有一组数据3,5,9,7,4,13,15,0,2,20.已知最大数是20,把数据从小到大排序,而且算法复杂度只能是1,不能用Java提供的类实现,如Arrays.sort()等。
思路:
最大是20,就用一个长度21的boolean数组,把数作为index标记出现过的。然后从小到大遍历这个boolean数据形成排序后的数组
代码:
思路:
最大是20,就用一个长度21的boolean数组,把数作为index标记出现过的。然后从小到大遍历这个boolean数据形成排序后的数组
代码:
int[] a = {3,5,9,7,4,13,15,0,2,20};
boolean[] b = new boolean[21];
for(int i=0;i<a.length;i++) {
b[a[i]] = true;
}
for(int i=0;i<b.length;i++) {
if(b[i]) {
System.out.print(i+",");
}
}