标签:2015阿里笔试题
第一次做阿里笔试题,除了ACM题之外从来没有做过校招网络题呀,完全是裸考,总体感觉吧,对于我来说,感觉时间不够用,不是题不会,感觉时间紧,大脑很混乱,总结这一次的笔试题
废话不多说,直接上题和答案
平均每个人逗留时间为20分钟,那么开场前20分钟一共来了400人,且有20个人逗留时间已经到,但他们不一定出去,注意是平均时间,所有博物馆最少应该容纳500人
双向循环列表,从任何一个元素开始可以遍历全部元素
先和后面的元素相连
s->next=p->next;
p->next->prev=s->next;
在前面的元素相连
p->next=s;
s->pre=p;
答案显而易见
画图可以实现
时间轮转为1秒
A 24
B 20
C 7
D14
总时间为73所以平均周转时间为16.25
有两种坐的方式
动态分配都在堆中,毋容置疑
Yield()暂时交出cpu控制权,从running状态转为runnalbe状态,但是仍有可能被调度,sleep()线程指定休眠一段时间wait()在其他线程调用此对象的notify()notifyAll()方法时才能继续执行线程中sleep()方法和yeild()方法的主要区别
: 1.sleep()
方法会给其他线程运行的机会,而不管其他线程的优先级,因此会给较低优先级的线程运行的机会;yeild()方法只会给优先级相同的或者比自己高的线程运行的机会2.sleep()方法声明抛出InterruptionException异常,而yeild()方法没有声明抛出任何异常3.sleep()方法比yeild()方法具有更高的可移植性4.sleep()方法使线程进入阻塞状态yeild()方法使线程进入就绪状态当前运行的线程可以调用另一个线程的join()方法,当前运行的线程将转到阻塞状态直到另一个线程运行结束,它才会恢复运行 join()有两种形式:public void join()和public void join(long timeout)可以设置阻塞的时间
sleep()方法进入阻塞状态,当有两个线程(线程1和线程2),线程1的优先级比线程2的优先级高,线程1sleep()则线程2可以获得运行机会
当有比当前线程优先级高的线程出现时,高优先级会抢占CPU并运行,yield()方法,暂停一段时间,且这段时间不确定,它会使与当前线程相同优先级的线程获得运行机会
具有相同优先级的多个线程调度不一定是分时的,多核CPU可能同时调度
首先选择排序、插入排序、冒泡排序时间复杂度为 O(n^2)
快速排序最坏排序为时间复杂度O(n^2)
堆排序需要知道是大顶堆或者小顶堆,因为不了解数列特征所以不推荐其复杂度为O(nlgn);
所以快排是最优的
TCP/IP建立在三次握手协议基础上
本人做的,可能有不对的,希望大家提出啊,持续更新中
标签:2015阿里笔试题
原文地址:http://blog.csdn.net/lv836735240/article/details/38933847