搜集的软件研发面试题 持续增加

PS.题不一定来着哪里 各处搜集,知道来源我会备注,侵权删。


1.计算时间复杂度

n=10; 
for(i=1; i <n; i++) 
  for(j=1; j <n; j+=n/2) 
    for(k=1; k <n; k=2*k)		
	x = x +1;  

答:第一层循环调用n次,第2层循环调用2次,第3层调用log n次,所以一共调用2nlogn次,时间复杂度为o(nlogn)


2.请说出你所知道的线程同步的方法

wait():使一个线程处于等待状态,并且释放所持有的对象的lock;
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要 捕捉InterruptedException异常;
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级;
notityAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。


3.指出下面程序运行结果   来自 http://blog.csdn.net/qq_35124535/article/details/56834476

class A {

    static {
        System.out.print("1");
    }

    public A() {
        System.out.print("2");
    }
}

class B extends A{

    static {
        System.out.print("a");
    }

    public B() {
        System.out.print("b");
    }
}

public class Hello {

    public static void main(String[] args) {
        A ab = new B();
        ab = new B();
    }

}

答:执行结果:1a2b2b。创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。


4、顺丰2017校招研发工程师笔试题

4.1、对递归程序的优化的一般的手段为()
A、尾递归优化
B、循环优化
C、堆栈优化
D、停止值优化

4.2、以30为基准,设一组初始记录关键字序列为 (30,15,40,28,50,10,70), 则第一趟快速排序结果为()
A、10,28,15,30,50,40,70
B、10,15,28,30,50,40,70
C、10,28,15,30,40,50,70
D、10,15,28,30,40,50,70

4.3、下列算法段中,时间复杂度为()

for
(i=1;i<=n;i++){
    for(j=;j<=i;j++)
    {
        x=0;
        for(k=1;k<=n;k++)
            x+=a*b;
    }
}
A、 O(n^2)
B、 O(n^2*(n+1))
C、 O(n*(n+1))
D、O(n^3)

4.4、假设用于通信的电文由 5 个字母组成,字母在电文中出现的频率分别为 2,4,5,7,8 根为第一层,用这 5 个字母设计哈弗曼树带权路径长度为()
A、 58
B、 105
C、 96
D、 84

4.5、下列代码的运行结果是()
void main()
{   
    Stack S;   
    Char x,y;   
    InitStack(S);   
    x='n';y='g';   
    Push(S,x);
    Push(S,'i');
    Push(S,y);
 
    Pop(S,x);
    Push(S,'r');
    Push(S,'t');
    Push(S,x);  
 
    Pop(S,x);
    Push(S,' s');   
    while(!StackEmpty(S)){Pop(S,y);printf(y);};   
        Printf(x);   
}
A、  gstrin
B、  string
C、  srting
D、  stirng

5.阿里巴巴2017秋招研发工程师笔试题

题目:一个二叉树有100个子节点数为2的节点,100个子节点数为1的节点,那么个子节点数为0的节点(叶节点)的个数为():
A、1     B、99    C、100    D、101    E、200  F、300


  答:  对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值