自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

某游戲部的Java工程師筆試題

開(kāi)發(fā) 后端
本文是某游戲部的Java工程師筆試題的節(jié)選以及答案分析。分析的比較基礎(chǔ)細(xì)致,準(zhǔn)備Java筆試的朋友們可以參考一二。

一位JavaEye的朋友easonfans剛剛進(jìn)行了某公司游戲部的筆試,并在博客中分享了此次Java工程師筆試題中的一些注意事項(xiàng)。解釋的比較基礎(chǔ)細(xì)致,希望對(duì)于那些正在準(zhǔn)備Java工程師筆試的朋友們有一些幫助。

一、選擇題:

5:既希望較快的查找又便于線性表動(dòng)態(tài)變化的查找方法是【】?

A:順序查找  B:折半查找  C:索引順序查找  D:哈希法查找

ans:C

詳細(xì)解釋?zhuān)?/P>

查找是在大量的信息中尋找一個(gè)特定的信息元素,在計(jì)算機(jī)應(yīng)用中,查找是常用的基本運(yùn)算,例如編譯程序中符號(hào)表的查找。用關(guān)鍵字標(biāo)識(shí)一個(gè)數(shù)據(jù)元素,查找時(shí)根據(jù)給定的某個(gè)值,在表中確定一個(gè)關(guān)鍵字的值等于給定值的記錄或數(shù)據(jù)元素。在計(jì)算機(jī)中進(jìn)行查找的方法是根據(jù)表中的記錄的組織結(jié)構(gòu)確定的。

順序查找也稱(chēng)為線形查找,從數(shù)據(jù)結(jié)構(gòu)線形表的一端開(kāi)始,順序掃描,依次將掃描到的結(jié)點(diǎn)關(guān)鍵字與給定值k相比較,若相等則表示查找成功;若掃描結(jié)束仍沒(méi)有找到關(guān)鍵字等于k的結(jié)點(diǎn),表示查找失敗。

二分查找要求線形表中的結(jié)點(diǎn)按關(guān)鍵字值升序或降序排列,用給定值k先與中間結(jié)點(diǎn)的關(guān)鍵字比較,中間結(jié)點(diǎn)把線形表分成兩個(gè)子表,若相等則查找成功;若不相等,再根據(jù)k與該中間結(jié)點(diǎn)關(guān)鍵字的比較結(jié)果確定下一步查找哪個(gè)子表,這樣遞歸進(jìn)行,直到查找到或查找結(jié)束發(fā)現(xiàn)表中沒(méi)有這樣的結(jié)點(diǎn)。

【優(yōu)缺點(diǎn)】折半查找法的優(yōu)點(diǎn)是比較次數(shù)少,查找速度快,平均性能好;其缺點(diǎn)是要求待查表為有序表,且插入刪除困難。因此,折半查找方法適用于不經(jīng)常變動(dòng)而查找頻繁的有序列表。

分塊查找也稱(chēng)為索引順序查找,把線形分成若干塊,在每一塊中的數(shù)據(jù)元素的存儲(chǔ)順序是任意的,但要求塊與塊之間須按關(guān)鍵字值的大小有序排列,還要建立一個(gè)按關(guān)鍵字值遞增順序排列的索引表,索引表中的一項(xiàng)對(duì)應(yīng)線形表中的一塊,索引項(xiàng)包括兩個(gè)內(nèi)容:① 鍵域存放相應(yīng)塊的最大關(guān)鍵字;② 鏈域存放指向本塊第一個(gè)結(jié)點(diǎn)的指針。分塊查找分兩步進(jìn)行,先確定待查找的結(jié)點(diǎn)屬于哪一塊,然后在塊內(nèi)查找結(jié)點(diǎn)。

哈希表查找是通過(guò)對(duì)記錄的關(guān)鍵字值進(jìn)行運(yùn)算,直接求出結(jié)點(diǎn)的地址,是關(guān)鍵字到地址的直接轉(zhuǎn)換方法,不用反復(fù)比較。假設(shè)f包含n個(gè)結(jié)點(diǎn),Ri為其中某個(gè)結(jié)點(diǎn)(1≤i≤n),keyi是其關(guān)鍵字值,在keyi與Ri的地址之間建立某種函數(shù)關(guān)系,可以通過(guò)這個(gè)函數(shù)把關(guān)鍵字值轉(zhuǎn)換成相應(yīng)結(jié)點(diǎn)的地址,有:addr(Ri)=H(keyi),addr(Ri)為哈希函數(shù)。

算法詳細(xì)比較
查找算法 優(yōu)點(diǎn) 缺點(diǎn) 運(yùn)算效率
順序查找 最簡(jiǎn)單的,查找表的存儲(chǔ)結(jié)構(gòu):既適用于順序存儲(chǔ)結(jié)構(gòu),也適用于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。   順序查找效率低,當(dāng)n過(guò)大時(shí),應(yīng)避免使用。

1若查找成功:(n+1)/2;

2若查找失敗:n+1;

3設(shè)查找成功的概率為p,查找不成功的概率為q=(1-p),則平均比較次數(shù)為:E(n)=p*(n+1)/2+q*(n+1)=p*(n+1)/2+(1-p)*(n+1)=(n+1)*(1-p/2);

4若成功和失敗的概率各占50%,平均性能:3*(n+1)/4;

二分查找 查找速度快; 但表必須有序。  頻繁插入和刪除不方便,二分法查找適于表中元素很少變化而查找頻繁的情況。

 二分法查找的過(guò)程可用二叉樹(shù)來(lái)描述,中間結(jié)點(diǎn)是二叉樹(shù)的根,左子表相當(dāng)于左子樹(shù),右子表相當(dāng)于右子樹(shù),由此得到的二叉樹(shù)便為描述二分法查找的判定樹(shù)。二分法查找的過(guò)程是走了一條從根結(jié)點(diǎn)到葉子結(jié)點(diǎn)的過(guò)程,不論查找成功與失敗,查找長(zhǎng)度均不超過(guò)樹(shù)的高度,h= log2(n+1) ,那個(gè)2是log的下綴;

等概率時(shí),折半查找的平均長(zhǎng)度為:;

當(dāng)n很大時(shí),ASL = log2(n+1)-1。

分塊查找(索引順序查找 分塊查找綜合了順序查找和二分法查找的優(yōu)點(diǎn),既有動(dòng)態(tài)結(jié)構(gòu),又適于快速查找。  

 設(shè)待查找文件有n個(gè)記錄,平均分成b塊,每塊有s個(gè)記錄。若只考慮查找成功的概率,且在塊內(nèi)和索引表中均用順序查找,則平均查找長(zhǎng)度為:

E(n)=Eb+Ew=(b+1)/2 +(s+1)/2 =(s^2+2*s+n)/(2*s);

若s= √n,則平均查找長(zhǎng)度取最小值:√n+1

若對(duì)索引表采用二分法查找,則平均查找長(zhǎng)度為:

       E(n)=Eb+Ew=㏒2(b+1) +(s+1)/2

哈希表查找 不論哈希表中有多少數(shù)據(jù),插入和刪除(有時(shí)包括側(cè)除)只需要接近常量的時(shí)間即0(1)的時(shí)間級(jí)

哈希表也有一些缺點(diǎn)它是基于數(shù)組的,數(shù)組創(chuàng)建后難于擴(kuò)展某些哈希表被基本填滿時(shí),性能下降得非常嚴(yán)重,所以程序雖必須要清楚表中將要存儲(chǔ)多少數(shù)據(jù)(或者準(zhǔn)備好定期地把數(shù)據(jù)轉(zhuǎn)移到更大的哈希表中,這是個(gè)費(fèi)時(shí)的過(guò)程)。

要面臨沖突處理問(wèn)題。

 基本是:O(1)

6:分別以下列構(gòu)造二叉排序樹(shù),與用其他三個(gè)序列所構(gòu)造的結(jié)果不同的是【】?

A:(100,80,90,60,120,110,130)

B:(100,120,110,130,80,60,90)

C:(100,60,80,90,120,110,130)

D:(100,80,60,90,120,130,110)

ans:C

這道題我答錯(cuò)了,我選得B,回來(lái)一看應(yīng)該選擇C項(xiàng),有余長(zhǎng)時(shí)間沒(méi)有看過(guò)操作系統(tǒng)了,好多東西我都忘記了,這道題真真的是蒙的。

詳細(xì)解釋?zhuān)?/P>

一、二叉排序樹(shù)的定義

二叉排序樹(shù)或者是空樹(shù),或者是具有如下性質(zhì)的二叉樹(shù):

1、左子樹(shù)上所有結(jié)點(diǎn)的數(shù)據(jù)值均小于根結(jié)點(diǎn)的數(shù)據(jù)值;

2、右子樹(shù)上所有結(jié)點(diǎn)的數(shù)據(jù)值均大于或等于根結(jié)點(diǎn)的數(shù)據(jù)值;

3、左子樹(shù)、右子樹(shù)本身又各是一棵二叉排序樹(shù)。

二、叉排序樹(shù)的構(gòu)造

二叉排序樹(shù)的構(gòu)造過(guò)程實(shí)質(zhì)上就是排序的過(guò)程,它是二叉排序樹(shù)作媒介,將一個(gè)任意的數(shù)據(jù)序列變成一個(gè)有序序列。二叉排序樹(shù)的構(gòu)造一般是采用陸續(xù)插入結(jié)點(diǎn)的辦法逐步構(gòu)成的。具體構(gòu)造的思路是:

1、以待排序的數(shù)據(jù)的第一個(gè)數(shù)據(jù)構(gòu)成根結(jié)點(diǎn);

2、對(duì)以后的各個(gè)數(shù)據(jù),逐個(gè)插入結(jié)點(diǎn),而且規(guī)定:在插入過(guò)程的每一步,原有樹(shù)結(jié)點(diǎn)位置不再變動(dòng),只是將新數(shù)據(jù)的結(jié)點(diǎn)作為一個(gè)葉子結(jié)點(diǎn)插入到合適的位置,使樹(shù)中任何結(jié)點(diǎn)的數(shù)據(jù)與其左、右子樹(shù)結(jié)點(diǎn)數(shù)據(jù)之間的關(guān)系仍然符合對(duì)二叉排序樹(shù)的要求。

所以有2可知,明顯我們應(yīng)該選擇出C,因?yàn)橹挥蠧項(xiàng)的兩個(gè)子樹(shù)是以60,120為對(duì)應(yīng)根節(jié)點(diǎn)的,其他的三個(gè)是以80,120作為子樹(shù)根節(jié)點(diǎn)的。

#p#

10:實(shí)現(xiàn)發(fā)送到某個(gè)email鏈接的Html代碼是【】?

A:< mail>xxx@yyy< /mail>

B:< mail href="xxx@yyy"/>

C:< a href="mailto:xxx@yyy">

D:< a href="xxx@yyy">

ans:C

詳細(xì)解釋?zhuān)?/P>

^_^,這題我做對(duì)了,其實(shí)我不懂這個(gè)Html代碼,我做到這道題的時(shí)候使用Html語(yǔ)言的邏輯猜的,看A和B,我使用排除法,要使A對(duì),那么要是按照Html的邏輯,那么B也對(duì),所以我知道A和B不對(duì),另外對(duì)于D,明顯是超鏈接的語(yǔ)句啊,所以我選得C,回來(lái)一看果然對(duì)了,蒙也要技術(shù)的。

或者自己使用dreamweaver的插入--電子郵件標(biāo)簽都看的到。

二、填空題:

2.多個(gè)線程互斥使用資源,對(duì)應(yīng)的信號(hào)量的變化范圍【 】?

ans:[0,1]

詳細(xì)解釋?zhuān)阂话阈盘?hào)量為0,1就可以了,若某個(gè)資源一次最多可以n個(gè)線程可以訪問(wèn),那么信號(hào)量的范圍就為【0~(n-1)】

3.對(duì)于資源靜態(tài)分配法來(lái)避免死鎖,主要是打破了死鎖四個(gè)條件的那個(gè)【】?

ans:部分分配條件

詳細(xì)解釋?zhuān)?/P>

死鎖的條件

1、互斥條件(Mutual exclusion):資源不能被共享,只能由一個(gè)進(jìn)程使用。

2、請(qǐng)求與保持條件(Hold and wait):已經(jīng)得到資源的進(jìn)程可以再次申請(qǐng)新的資源。

3、非剝奪條件(也稱(chēng)為部分分配條件)(No pre-emption):已經(jīng)分配的資源不能從相應(yīng)的進(jìn)程中被強(qiáng)制地剝奪。

4、循環(huán)等待條件(Circular wait):系統(tǒng)中若干進(jìn)程組成環(huán)路,改環(huán)路中每個(gè)進(jìn)程都在等待相鄰進(jìn)程正占用的資源

死鎖預(yù)防的方法:

(1)打破"不剝奪條件:強(qiáng)迫那些請(qǐng)求新資源而沒(méi)有立即得到滿足的進(jìn)程,釋放它已保持的其它資源。即一個(gè)進(jìn)程已占用的資源在運(yùn)行過(guò)程中可能要暫時(shí)釋放。

(2)打破"部分分配"條件:對(duì)某進(jìn)程所要求的資源一次性地分配完畢。這樣,進(jìn)程在運(yùn)行過(guò)程中就不再需要新的資源。這種方法又稱(chēng)為預(yù)先靜態(tài)分配法。但在做靜態(tài)分配時(shí),只要有一種資源不能滿足,該進(jìn)程就必需等待.

(3)打破"環(huán)路等待"條件:在資源的分配過(guò)程中,對(duì)資源的請(qǐng)求作出某種限制,使環(huán)路不可能出現(xiàn)--有序資源分配法

4.當(dāng)一個(gè)進(jìn)程獨(dú)占處理器順序執(zhí)行的時(shí)候,具有兩個(gè)特性【】和可再現(xiàn)性。

ans:封閉性

詳細(xì)解釋?zhuān)?/P>

程序順序執(zhí)行的特征:

a.順序性:每一操作必須在下一操作開(kāi)始之前結(jié)束

b.封閉性:程序運(yùn)行時(shí)獨(dú)占全機(jī)資源,資源的狀態(tài)(除初始狀態(tài)外)只有本程序才能改變,程序一旦執(zhí)行,其結(jié)果不受外界影響

c.可再現(xiàn)性:程序執(zhí)行環(huán)境和初始條件相同,重復(fù)執(zhí)行時(shí),結(jié)果相同

我開(kāi)始寫(xiě)的是可預(yù)見(jiàn)性……我也不從哪里看到這個(gè)說(shuō)法的……

9.中級(jí)表達(dá)式3+x*(2.4/5+6)所對(duì)應(yīng)的后綴表達(dá)式為【】?

ans:3x2.45/6-*+

詳細(xì)解釋?zhuān)?/P>

表達(dá)式表示法

算術(shù)表達(dá)式中最常見(jiàn)的表示法形式有 中綴、前綴和 后綴表示法。中綴表示法是書(shū)寫(xiě)表達(dá)式的常見(jiàn)方式,而前綴和后綴表示法主要用于計(jì)算機(jī)科學(xué)領(lǐng)域。

中綴表示法

中綴表示法是算術(shù)表達(dá)式的常規(guī)表示法。稱(chēng)它為 中綴表示法是因?yàn)槊總€(gè)操作符都位于其操作數(shù)的中間,這種表示法只適用于操作符恰好對(duì)應(yīng)兩個(gè)操作數(shù)的時(shí)候(在操作符是二元操作符如加、減、乘、除以及取模的情況下)。對(duì)以中綴表示法書(shū)寫(xiě)的表達(dá)式進(jìn)行語(yǔ)法分析時(shí),需要用括號(hào)和優(yōu)先規(guī)則排除多義性。

  1. Syntax: operand1 operator operand2 
  2. Example: (A+B)*C-D/(E+F)  

前綴表示法

前綴表示法中,操作符寫(xiě)在操作數(shù)的前面。這種表示法經(jīng)常用于計(jì)算機(jī)科學(xué),特別是編譯器設(shè)計(jì)方面。為紀(jì)念其發(fā)明家 ― Jan Lukasiewicz,這種表示法也稱(chēng) 波蘭表示法。

  1. Syntax  : operator operand1 operand2 
  2. Example : -*+ABC/D+EF  

后綴表示法

在后綴表示法中,操作符位于操作數(shù)后面。后綴表示法也稱(chēng) 逆波蘭表示法(reverse Polish notation,RPN),因其使表達(dá)式求值變得輕松,所以被普遍使用。

  1. Syntax  : operand1 operand2 operator  
  2. Example : AB+C*DEF+/-  

前綴和后綴表示法有三項(xiàng)公共特征:

◆操作數(shù)的順序與等價(jià)的中綴表達(dá)式中操作數(shù)的順序一致

◆不需要括號(hào)

◆操作符的優(yōu)先級(jí)不相關(guān)

要把表達(dá)式從中綴表達(dá)式的形式轉(zhuǎn)換成用后綴表示法表示的等價(jià)表達(dá)式,必須了解操作符的優(yōu)先級(jí)和結(jié)合性。 優(yōu)先級(jí)或者說(shuō)操作符的強(qiáng)度決定求值順序;優(yōu)先級(jí)高的操作符比優(yōu)先級(jí)低的操作符先求值。 如果所有操作符優(yōu)先級(jí)一樣,那么求值順序就取決于它們的 結(jié)合性。操作符的結(jié)合性定義了相同優(yōu)先級(jí)操作符組合的順序(從右至左或從左至右)。

  1. Left associativity  : A+B+C = (A+B)+C  
  2. Right associativity : A^B^C = A^(B^C)  

詳細(xì)步驟:

設(shè)以’@’字符作為結(jié)束符的中綴算術(shù)表達(dá)式已經(jīng)保存在s1字符串中,轉(zhuǎn)換后得到的后綴算術(shù)表達(dá)式擬存于s2字符串中。由中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式的規(guī)則可知:轉(zhuǎn)換前后,表達(dá)式中的數(shù)值項(xiàng)的次序不變,而運(yùn)算符的次序發(fā)生了變化,由處在兩個(gè)運(yùn)算對(duì)象的中間變?yōu)樘幵趦蓚€(gè)運(yùn)算對(duì)象的后面,同時(shí)去掉了所有的括號(hào)。為了使轉(zhuǎn)換正確,必須設(shè)定一個(gè)運(yùn)算符棧,并在棧底放入一個(gè)特殊算符,假定為‘@’字符,讓它具有最低的運(yùn)算符優(yōu)先級(jí),假定為數(shù)值0,此棧用來(lái)保存掃描中綴表達(dá)式得到的暫不能放入后綴表達(dá)式中的運(yùn)算符,待它的兩個(gè)運(yùn)算對(duì)象都放入到后綴表達(dá)式以后,再令其出棧并寫(xiě)入到后綴表達(dá)式中。

把中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式算法的基本思路是從頭到尾地掃描中綴表達(dá)式中的每個(gè)字符,對(duì)于不同類(lèi)型的字符按不情況進(jìn)行處理。若遇到的是空格則認(rèn)為是分隔符,不需要進(jìn)行處理;若遇到的是數(shù)字或小數(shù)點(diǎn),則直接寫(xiě)入到s2中,并在每個(gè)數(shù)值的最后寫(xiě)入一個(gè)空格;若遇到的是左括號(hào),則應(yīng)把它壓入到運(yùn)算符棧中,待以它開(kāi)始的括號(hào)內(nèi)的表達(dá)式轉(zhuǎn)換完畢后再出棧;若遇到的是右括號(hào),則表明括號(hào)內(nèi)的中綴表達(dá)式已經(jīng)掃描完畢,把從棧底直到保存著的對(duì)應(yīng)左括號(hào)之間的運(yùn)算符依次退棧并寫(xiě)入s2串中;若遇到的是運(yùn)算符,當(dāng)該運(yùn)算符的優(yōu)先級(jí)大于棧頂運(yùn)算符的優(yōu)先級(jí)(加減運(yùn)算符的優(yōu)先級(jí)設(shè)定為1,乘除運(yùn)算符的優(yōu)先級(jí)設(shè)定為2,在棧中保存的特殊運(yùn)算符‘@’和’(’的優(yōu)先級(jí)設(shè)定為0)時(shí),表明該運(yùn)算符的后一個(gè)運(yùn)算對(duì)象還沒(méi)有被掃描并放入到s2串中,應(yīng)把它暫存于運(yùn)算符棧中,待它的后一個(gè)運(yùn)算對(duì)象從s1串中讀出并寫(xiě)入到s2串中后,再另其出棧并寫(xiě)入s2串中;若遇到的運(yùn)算符的優(yōu)先級(jí)小于等于棧頂運(yùn)算符的優(yōu)先級(jí),這表明棧頂運(yùn)算符的兩個(gè)運(yùn)算對(duì)象已經(jīng)被保存到s2串中,應(yīng)將棧頂運(yùn)算符退棧并寫(xiě)入到s2串中,對(duì)于新的棧頂運(yùn)算符仍繼續(xù)進(jìn)行比較和處理,直到被處理的運(yùn)算符的優(yōu)先級(jí)大于棧頂運(yùn)算符的優(yōu)先級(jí)為止,然后另該運(yùn)算符進(jìn)棧即可。

按照以上過(guò)程掃描到中綴表達(dá)式結(jié)束符‘@’時(shí),把棧中剩余的運(yùn)算符依次退棧并寫(xiě)入到后綴表達(dá)式中,再向s2寫(xiě)入表達(dá)式結(jié)束符‘@’和字符串結(jié)束符’{post.content}’,整個(gè)轉(zhuǎn)換過(guò)程就處理完畢,在s2中就得到了轉(zhuǎn)換成的后綴表達(dá)式。

或者:

轉(zhuǎn)換過(guò)程包括用下面的算法讀入中綴表達(dá)式的操作數(shù)、操作符和括號(hào):

初始化一個(gè)空堆棧,將結(jié)果字符串變量置空。

從左到右讀入中綴表達(dá)式,每次一個(gè)字符。

如果字符是操作數(shù),將它添加到結(jié)果字符串。

如果字符是個(gè)操作符,彈出(pop)操作符,直至遇見(jiàn)開(kāi)括號(hào)(opening parenthesis)、優(yōu)先級(jí)較低的操作符或者同一優(yōu)先級(jí)的右結(jié)合符號(hào)。把這個(gè)操作符壓入(push)堆棧。

如果字符是個(gè)開(kāi)括號(hào),把它壓入堆棧。

如果字符是個(gè)閉括號(hào)(closing parenthesis),在遇見(jiàn)開(kāi)括號(hào)前,彈出所有操作符,然后把它們添加到結(jié)果字符串。

如果到達(dá)輸入字符串的末尾,彈出所有操作符并添加到結(jié)果字符串。

一個(gè)例子:

例如,設(shè)中綴算術(shù)表達(dá)式s1為:10+(18+9*3)/15-6@,使用的運(yùn)算符棧用R表示,則轉(zhuǎn)換過(guò)程如下:

(1)開(kāi)始時(shí)存放后綴表達(dá)式的字符串s2為空,R中壓入有’@’算符,它具有最低的優(yōu)先級(jí)0:@

(2)當(dāng)掃描到s1中的左括號(hào)時(shí),s2和R中的數(shù)據(jù)變化如下:

  1. 1 0     
  2. @ + (   

(3)當(dāng)掃描到s1中的數(shù)值3時(shí),s2和R中的數(shù)據(jù)變化為:

  1. 1 0   1 8  9  3  
  2. @ + ( + *     

(4)當(dāng)掃描到s1中的右括號(hào)時(shí),s2和R變?yōu)椋?/P>

  1. 1 0   1 8  9  3  * +   
  2. @ +    

(5)當(dāng)掃描到s1中的數(shù)值15時(shí),s2和R又變?yōu)椋?/P>

  1. 1 0   1 8  9  3  * + 1 5     
  2.  @ + /    

(6)當(dāng)掃描到s1中的’@’字符時(shí),s2和R為:

  1. 1 0   1 8  9  3  * + 1 5  / + 6     
  2. @ -     

(7)當(dāng)整個(gè)處理過(guò)程結(jié)束后,R棧為空,s2為:1 0   1 8  9  3  * + 1 5  / + 6  - @ ù

10.在一個(gè)帶頭節(jié)點(diǎn)的單循環(huán)鏈表中,P指向尾結(jié)點(diǎn)的直接前驅(qū),則指向頭結(jié)點(diǎn)的指針head可用P表示為head=【 】?

ans:P->next->next

詳細(xì)解釋?zhuān)浩鋵?shí)這道題不難,不過(guò)我忘記怎么使用鏈表指向下一個(gè)node了,我寫(xiě)的是P.P.P,無(wú)語(yǔ)了……

12有序表(12,18,30,43,56,78,82,95)中以此二分查找43和56元素時(shí),其查找長(zhǎng)度分別為【  】和【 】?

 ans:1,3

詳細(xì)解釋?zhuān)哼@題要說(shuō)難難在那里哪?就是二分法比較的時(shí)候,當(dāng)數(shù)列個(gè)數(shù)是偶數(shù)的時(shí)候到底是應(yīng)該去哪個(gè)值,也就是說(shuō)第一次比較的值應(yīng)該是43,還是56,如果是43,那么這題就是1,3這個(gè)結(jié)果,那么恭喜你,你答對(duì)了,要使56,那么這道題就是3,1.結(jié)果正好相反。像本篇日志所涉及的第一道題就講到了查找方法:二分法,其中還提供一個(gè)鏈接:http://www.emcad.com/Teaching/DS-DB/Search.htm,其實(shí)這個(gè)鏈接中舉的例子是錯(cuò)誤的,因?yàn)樵谒惴▽?shí)現(xiàn)中(1+n)/2并不會(huì)四舍五入,因?yàn)閏和c++都是取整的,也就是說(shuō)本題(1+8)/2=4,也就是43而不是56!??!另外還有一種理解方法,有8個(gè)數(shù)(偶數(shù)),那么8/2=4,所以比較的是第四個(gè)數(shù)。這么理解也是對(duì)的。

此次Java工程師筆試題就先介紹這么多。原博文中介紹了一些參考閱讀,有興趣的讀者可以去看看。

【編輯推薦】

  1. Java筆試題:Java基礎(chǔ)概念(附答案)
  2. 自學(xué)Javabean迅速成為Java高手
  3. Java通過(guò)JNI調(diào)用C語(yǔ)言的方法
  4. 高手Java核心技術(shù)學(xué)習(xí)筆記
  5. 成為Java高手需要注意的25個(gè)學(xué)習(xí)目標(biāo)
責(zé)任編輯:yangsai 來(lái)源: JavaEye博客
相關(guān)推薦

2009-03-05 09:43:39

面試筆試測(cè)試工程師

2010-08-17 21:53:32

華為認(rèn)證HCNE網(wǎng)絡(luò)工程師認(rèn)證

2018-02-07 11:13:30

2009-03-27 10:29:55

等考四級(jí)網(wǎng)絡(luò)工程師等考試題

2020-03-17 15:15:49

Python工程師面試題

2010-08-18 11:13:25

2009-08-18 10:30:32

2009-09-08 17:50:01

2009-09-24 15:16:04

CCNA網(wǎng)絡(luò)工程師面試

2009-09-21 15:27:17

2011-05-24 09:19:42

seo

2012-07-05 14:46:21

運(yùn)維工程師

2018-08-29 15:24:04

NVIDIAPhysX游戲

2009-03-28 11:34:09

等考四級(jí)數(shù)據(jù)庫(kù)工程師等考試題

2009-09-24 15:26:26

2009-06-15 17:18:25

Java筆試題

2015-08-26 14:18:25

Web前端工程師價(jià)值

2015-05-04 13:24:12

工程師OpenStack公有云

2009-11-02 14:37:00

網(wǎng)絡(luò)工程師試題答案

2009-11-02 14:30:00

網(wǎng)絡(luò)工程師試題答案
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)