有一组数据3,5,9,7,4,13,15,0,2,20.已知最大数是20,把数据从小到大排序,而且算法复杂度只能是1,不能用Java提供的类实现,如Arrays.sort()等。
思路:
最大是20,就用一个长度21的boolean数组,把数作为index标记出现过的。然后从小到大遍历这个boolean数据形成排序后的数组
代码:
http://microjava.javaeye.com/blog/688643
思路:
最大是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+",");
- }
- }
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+",");
}
}
转自:
http://microjava.javaeye.com/blog/688643