- 相關(guān)推薦
阿里巴巴筆試題
1.平均速度最快的排序算法是______。
Shell排序
快速排序
冒泡排序
插入排序
2014-03-29 18:36:02
2.某服務(wù)進(jìn)程的QPS(沒秒處理的請(qǐng)求個(gè)數(shù))較低,在空閑時(shí)間RT(響應(yīng)時(shí)間)比較合理。在壓力下CPU占用率20%左右。那么可能存在的問題是______。
該進(jìn)程的某個(gè)處理過程的代碼需要提高速度
該進(jìn)程依賴的服務(wù)可能存在性能瓶頸
該進(jìn)程需要增加線程數(shù)
該進(jìn)程可能有一個(gè)鎖的粒度太大
2014-03-29 18:36:16
3.無鎖化編程有哪些常見方法?______ 。
針對(duì)計(jì)數(shù)器,可以使用原子加
只有一個(gè)生產(chǎn)者和一個(gè)消費(fèi)者,那么就可以做到免鎖訪問環(huán)形緩沖區(qū)(Ring Buffer)
RCU(Read-Copy-Update),新舊副本切換機(jī)制,對(duì)于舊副本可以采用延遲釋放的做法
CAS(Compare-and-Swap),如無鎖棧,無鎖隊(duì)列等待
2014-03-29 18:37:00
2014-03-29 18:37:00
4.假設(shè)棧S和隊(duì)列Q的初始狀態(tài)為空,元素a、b、c、d、e、f依次通過S和Q,即每一個(gè)元素必須先進(jìn)棧,之后再出棧進(jìn)入隊(duì)列。若這6個(gè)元素出隊(duì)的順序是b、d、c、f、e、a,則棧S的容量至少應(yīng)該為______。
3
4
5
6
2014-03-29 18:37:11
5.設(shè)棧S初始狀態(tài)為空。元素a,b,c,d,e,f依次通過棧S,若出棧的順序?yàn)閏,f,e,d,b,a,則棧S的容量至少應(yīng)該為______ 。
3
4
5
6
2014-03-29 18:37:25
6.一個(gè)單向鏈表,頭指針和尾指針分別為p,q,以下_____項(xiàng)操作的復(fù)雜度受隊(duì)列長(zhǎng)度的影響?
刪除頭部元素
刪除尾部元素
頭部元素之前插入一個(gè)元素
尾部元素之后插入一個(gè)元素
2014-03-29 18:37:33
7.集合A={1,2,3},A上的關(guān)系R={(1,1),(2,2),(2,3),(3,2),(3,3)},則R不具備 。
自反性
傳遞性
對(duì)稱性
反對(duì)稱性
2014-03-29 18:37:44
8.件設(shè)備的壽命通常符合指數(shù)分布,即無記憶性,也就是如果一個(gè)設(shè)備當(dāng)前正常工作,那么剩余預(yù)期壽命和已經(jīng)工作的時(shí)間無關(guān)。假定某種設(shè)備1000臺(tái),在一年之內(nèi)壞掉500臺(tái)(無維修),那么在有維修(設(shè)備壞掉立刻換新的)的情況下,一年之內(nèi)需要換______臺(tái)該設(shè)備。
400臺(tái)
500臺(tái)
753臺(tái)
1000臺(tái)
2014-03-29 18:37:53
9.一個(gè)int64_t類型的變量轉(zhuǎn)換成一個(gè)double類型的變量,可能存在的問題是______。
精度損失
大小溢出
轉(zhuǎn)換失敗
無以上問題
2014-03-29 18:38:04
10.標(biāo)準(zhǔn)unix環(huán)境下,一個(gè)擁有3個(gè)線程的進(jìn)程調(diào)用fork產(chǎn)生的子進(jìn)程中,其線程個(gè)數(shù)為______。
1
2
3
4
2014-03-29 18:38:15
11.你有一個(gè)3X3X3的立方體。你現(xiàn)在在正面左上的頂點(diǎn),需要移動(dòng)到對(duì)角線的背面右下的頂點(diǎn)中。每次移動(dòng)不限距離,但只能從前至后、從左至右、從上至下運(yùn)動(dòng),即不允許斜向或后退。有______種方法。
9
90
180
1680
2014-03-29 18:38:28
12 兩個(gè)N*N的矩陣A和B,想要在PC上按矩陣乘法基本算法編程實(shí)現(xiàn)計(jì)算A*B。假設(shè)N較大,本機(jī)內(nèi)存也很大,可以存下A、B和結(jié)果矩陣。那么,為了計(jì)算速度,A和B在內(nèi)存中應(yīng)該采用的存儲(chǔ)方法是______。(按行存指先存儲(chǔ)第一行,再第二行,直到最后一行;按列存指先存儲(chǔ)第一列,再第二列,直到最后一列)
A按行存,B按行存
A按行存,B按列存
A按列存,B按行存
A按列存,B按列存
2014-03-29 18:38:37
13.知一個(gè)遞歸算法的算法復(fù)雜度計(jì)算公式為T(n)=T(n/2)+n,則T(n)的算法復(fù)雜度為____。
O(n)
O(logn) O(n2)
O(nlogn)
2014-03-29 18:38:53
14.慮如下程序存在的問題是__________。
class A {
public:
A(B* b) : _b(b) {}
~A() { b;}
private:
B* _b;
};
int main()
{
B b;
A(&b);
return 0;
}
double free 重復(fù)釋放
stack free 堆棧釋放
memory leak 內(nèi)存泄露
無以上問題
2014-03-29 18:39:01
2014-03-29 18:39:01
15.21、26、65、99、10、35、18、77分成若干組,要求每組中任意兩個(gè)數(shù)都互質(zhì),至少要分成______組。
3
4
2
5
2014-03-29 18:39:09
16.設(shè)某虛擬存儲(chǔ)系統(tǒng)的物理內(nèi)存只有3個(gè)頁(page),當(dāng)進(jìn)程A訪問虛擬頁的序列依次是1, 2, 3, 4, 2, 7, 5, 3, 5, 7, 4, 3, 當(dāng)頁面淘汰算法為先進(jìn)先出(FIFO)且內(nèi)存在剛開始為空,那進(jìn)程A遭遇的頁面失效次數(shù)為_____。
7次
8次
9次
10次
2014-03-29 18:39:18
17.于一個(gè)二叉查找樹,以下遍歷方式中,______可以得到一個(gè)遞增數(shù)列。 先序遍歷
中序遍歷
后序遍歷
層次遍歷
2014-03-29 18:39:25
18. 兩個(gè)N*N的矩陣A和B,想要在PC上按矩陣乘法基本算法編程實(shí)現(xiàn)計(jì)算A*B。假設(shè)N較大,本機(jī)內(nèi)存也很大,可以存下A、B和結(jié)果矩陣。那么,為了計(jì)算速度,A和B在內(nèi)存中應(yīng)該如何存儲(chǔ)(按行存指先存儲(chǔ)第一行,再第二行,直到最后一行;按列存指先存儲(chǔ)第一列,再第二列,直到最后一列) A按行存,B按行存。
A按行存,B按列存。
A按列存,B按行存。
A按列存,B按列存。
2014-03-29 18:39:31
19.個(gè)容器類數(shù)據(jù)結(jié)構(gòu),讀寫平均,使用鎖機(jī)制保證線程安全。如果要綜合提高該數(shù)據(jù)結(jié)構(gòu)的訪問性能,最好的辦法是______。
只對(duì)寫操作加鎖,不對(duì)讀操作加鎖
讀操作不加鎖,采用copyOnWrite的方式實(shí)現(xiàn)寫操作
分區(qū)段加鎖
無法做到
2014-03-29 18:39:40
20.設(shè)炮彈發(fā)射3次,射中目標(biāo)區(qū)域的概率是0.95,那么,發(fā)射1次射中目標(biāo)區(qū)域的概率約是 。
0.32
0.63 0.50
0.73
2014-03-29 18:39:47
21正則表達(dá)式 2[0-4]\d|25[0-5]|[01]?\d\d?$ 能匹配以下哪個(gè)表達(dá)式 ?
255
256
2
25a
2014-03-29 18:39:54
22.叉樹的廣度優(yōu)先遍歷序列為A B C D E F G H I,已知A是C的父結(jié)點(diǎn),D 是G 的父結(jié)點(diǎn),F(xiàn) 是I 的父結(jié)點(diǎn),樹中所有結(jié)點(diǎn)的最大深度為3(根結(jié)點(diǎn)深度設(shè)為0),可知E的父結(jié)點(diǎn)可能是 _____。 A
B
C
D
F
2014-03-29 18:40:02
23.服務(wù)進(jìn)程的QPS(沒秒處理的請(qǐng)求個(gè)數(shù))較低,在空閑時(shí)間RT(響應(yīng)時(shí)間)比較合理。在壓力下CPU占用率20%左右。那么可能存在的問題是______。
該進(jìn)程的某個(gè)處理過程的代碼需要提高速度
該進(jìn)程依賴的服務(wù)可能存在性能瓶頸
該進(jìn)程需要增加線程數(shù)
該進(jìn)程可能有一個(gè)鎖的粒度太大
2014-03-29 18:40:09
24.無鎖化編程有哪些常見方法?______ 。
針對(duì)計(jì)數(shù)器,可以使用原子加
只有一個(gè)生產(chǎn)者和一個(gè)消費(fèi)者,那么就可以做到免鎖訪問環(huán)形緩沖區(qū)(Ring Buffer)
RCU(Read-Copy-Update),新舊副本切換機(jī)制,對(duì)于舊副本可以采用延遲釋放的做法
CAS(Compare-and-Swap),如無鎖棧,無鎖隊(duì)列等待
2014-03-29 19:18:33
25.有個(gè)學(xué)校的15個(gè)女生一直3個(gè)一群上學(xué)。請(qǐng)問該如何安排才能使這些女生每周7天每天都和兩個(gè)不同的同伴結(jié)伴同行呢?例如:用A到O來標(biāo)識(shí)這些女孩,7天A正好和B到O這14個(gè)女孩各同行一次。而B到O每個(gè)人和都和其他14個(gè)女孩各同行一次。
26.含有n個(gè)關(guān)鍵字的B樹上查找時(shí),從根節(jié)點(diǎn)到關(guān)鍵字節(jié)點(diǎn)的路徑上涉及的節(jié)點(diǎn)數(shù)不超過__________。
2014-03-29 19:18:59
27.下是一段基于鏈表的棧的實(shí)現(xiàn)代碼,請(qǐng)補(bǔ)充空白處的代碼。
class Stack {
Node top;
Object pop() {
if (top != null) {
Object item = top.data;
(1) top=top.next;
return item;
}
return null;
}
void push(Object item) {
Node t = new Node(item);
(2)
top = t;
}
}
class Node{
Node next;
Object data;
public Node(Object item){
data = item;
}
}
(1) top=top.next
(2)t.next=top
2014-03-29 19:19:09
28.JAVA選做題(注:阿里有大量JAVA研發(fā)工程師需求;選作以下題目有機(jī)會(huì)增加該方向面試機(jī)會(huì))
天貓雙十一有個(gè)積分換墨盒的活動(dòng),總共有50萬臺(tái)天貓魔盒(box),每個(gè)用戶(user)可以用99個(gè)天貓積分(point)兌換一臺(tái)魔盒,且每人限換一臺(tái)。 請(qǐng)?jiān)O(shè)計(jì)一套java接口并實(shí)現(xiàn)下單(order)邏輯。
參考(但不局限于)下面的下單邏輯:
1、創(chuàng)建訂單
2、扣減用戶積分
3、扣減魔盒庫存
4、下單成功
同時(shí)請(qǐng)回答:
1、數(shù)據(jù)庫表結(jié)構(gòu)如何設(shè)計(jì),有哪些表,分別有什么作用?
2、下單過程中哪些地方可能成為瓶頸?如何解決或改善?
3、是否會(huì)用到數(shù)據(jù)庫事務(wù),哪些地方會(huì)用到?如果不用數(shù)據(jù)庫事務(wù),如何保證數(shù)據(jù)的一致性?
java接口那個(gè)你看書上的定義,安要求定義函數(shù)
函數(shù)明用英文就可以了。不過接口這個(gè)不一定對(duì)
數(shù)據(jù)表格三張,魔盒表,用戶表,和魔盒與用戶關(guān)系表
瓶頸會(huì)存在與對(duì)各個(gè)表格存儲(chǔ)過程中。比如魔盒數(shù)量修改,用戶分?jǐn)?shù)修改,用戶兌換魔盒記錄等
改善的一個(gè)方法就是用戶創(chuàng)建頂點(diǎn)時(shí)先讀取用戶和魔盒關(guān)系表,如果有記錄,則不必讀取后兩張表,盡量節(jié)約時(shí)間愛你
盡量節(jié)約時(shí)間
其他方法也可以考慮,可以在表格設(shè)計(jì)和處理順序上考慮下
需要數(shù)據(jù)庫事物,只要用在數(shù)據(jù)表格的數(shù)據(jù)修改中,比如修改積分,魔盒數(shù)量等,用數(shù)據(jù)庫事物是做安全的保證數(shù)據(jù)一致性的方法。不用其實(shí)也可以,需要在代碼中體現(xiàn)。但不利于以后的維護(hù)等
基本是些意思嗎,具體的記不清了
2014-03-29 19:19:23
29.長(zhǎng)度為100的環(huán)形雙向鏈表,A指針順時(shí)針方向每次走3步,B指針逆時(shí)針方向每次走5步,每次走完判斷是否相遇,初始狀態(tài)B在A逆時(shí)針方向相距20,走100次,AB指針能相遇幾次?
30.下C語言程序片段用于估測(cè)CPU的cache參數(shù)(容量,延遲等): #define MAX_SIZE (64*1024*1024L)
#define STRIDE (128)
#define STEP (4096)
#define REPEAT (1000*1000L)
double t[MAX_SIZE/STEP];
int d[MAX_SIZE/sizeof(int)];
t[0] = 0;
long foot_print;
for (foot_print = STEP; foot_print < MAX_SIZE; foot_print += STEP) {
long i;
for (i = 0; i < foot_print; i += STRIDE)
{
long next = (i + STRIDE) % foot_print;
d[i/sizeof(int)] = next/sizeof(int);
}
int m = 0;
double t1 = get_time_second();
for (i = 0; i < REPEAT; ++i)
{
; // **
}
double t2 = get_time_second();
t[foot_print/STEP] = t2 t1;
printf(“%d\t”, x); // avoid compiler optimization
}
// record t[] ?
假設(shè)CPU具有L1/L2/L3三層cache,cache line長(zhǎng)度小于128B,硬件預(yù)取已經(jīng)關(guān)閉。
請(qǐng)補(bǔ)全標(biāo)記**的行,完成其功能;
【阿里巴巴筆試題】相關(guān)文章:
面試題:對(duì)跳槽的看法11-04
面試心理測(cè)試題08-19
鐵塔公司筆試試題03-25
幼師招聘筆試題目04-02
報(bào)社筆試題目及答案03-18
英語電話面試題目04-06
面試題:怎樣對(duì)待失敗04-22
萊商銀行招聘筆試題04-14
農(nóng)商銀行面試題03-24