锁定老帖子 主题:软通外派华为面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-01
我做了前两道题 用了1小时 我这种水平去面试几率有多大?
package test; public class Test { public static void main(String[] args){ int[] a={1,3,5,8,77,88,99,4,7}; int[] d=new int[a.length]; int c; for(int k=0;k<a.length-1;k++){ for(int b=0;b<a.length-1;b++){ if(a[b]<a[b+1]){ c=a[b]; a[b]=a[b+1]; a[b+1]=c; } } } for(int e:a){ System.out.println(e); } for(int k=0; k<a.length;k++){ if(k%2==0){ d[k]=a[k/2]; } else{ d[k]=a[a.length-(k+1)/2]; } } for(int e:d){ System.out.print(e); } } } |
|
返回顶楼 | |
发表时间:2009-09-01
请大家用双端序列写一下第2题好不好 双端序列我百度了 很迷糊
java.util.Queue 这都没见过 我觉得我这月找工作困难又加大1倍 |
|
返回顶楼 | |
发表时间:2009-09-01
软通动力不要你是你的福气
|
|
返回顶楼 | |
发表时间:2009-09-02
最后修改:2009-09-02
for (int i =0 ;i<array.length-2;i+=2){
for(int j = i+1 ;j<array.length;j++){ if(array[i]<array[j]){ array[i] = array[j]; } if(array[i+1]>array[j]){ array[i+1] = array[j]; } } } 两个两个冒泡!!!第一个存最大的,第二个存最小的! |
|
返回顶楼 | |
发表时间:2009-09-02
1题应该是让用冒泡排序吧?如果直接可以用Util也太儿戏了。。
2题用冒泡也可以实现,不过在相邻2个元素交换的判断依据不同,第一次外循环按降序冒泡,第二次按升序,第三次降序,以此类推,如何控制?if else呗。。。 |
|
返回顶楼 | |
发表时间:2009-09-02
面试题可以讨论一下
去那工作的念头就灭了吧 |
|
返回顶楼 | |
发表时间:2009-09-02
第3题
1. select t1.classid,t1.userid,t1.score from tempInfo as t1, (select classid,max(score) as score from tempInfo group by classid) as t2 where t1.classid=t2.classid and t1.score =t2.score 2. select classid,avg(score) as score from tempinfo group by classid having avg(score)>=60 order by score desc 3. select t1.classid,t1.userid,t1.score from tempinfo t1,( select classid,count(classid) as num from tempinfo group by classid )t2 where t1.score>80 and t1.classid =t2.classid and t2.num>20 不知道有没更简单的呢! |
|
返回顶楼 | |
发表时间:2009-09-02
arfee522 写道 1题应该是让用冒泡排序吧?如果直接可以用Util也太儿戏了。。
2题用冒泡也可以实现,不过在相邻2个元素交换的判断依据不同,第一次外循环按降序冒泡,第二次按升序,第三次降序,以此类推,如何控制?if else呗。。。 2控制直接判断数组大小即可,取一半输出 |
|
返回顶楼 | |
发表时间:2009-09-02
最后修改:2009-09-02
/** * 对int数组进行排序,使 * 第1个是最大, * 第2个是最小的, * 第3个是次大的, * 第4个是次小的, * 以此类推 */ public static void x_sort(int a[]){ Arrays.sort(a); LinkedList queue = new LinkedList(); for (int i = 0; i < a.length; i++) { queue.add(a[i]); } boolean flag = true; for (int i = 0; i < a.length; i++) { if(flag) a[i] = (Integer) queue.removeLast(); else a[i] = (Integer) queue.removeFirst(); flag = !flag; } } |
|
返回顶楼 | |
发表时间:2009-09-02
大家在排序的时候为什么都用冒泡而不用nlogn的算法呢?
|
|
返回顶楼 | |