算法基礎知識【6】(8-16) + 計算機網絡基礎知識【10】(08-16)

Date: 2019-08-16

part  one  算法基礎知識

1.  爲查找某一特定單詞在文本中出現的位置,可應用的串運算是(     )   子串定位

2.  算法獨立於具體的程序設計語言,與具體的計算機無關()    對,與計算機無關,但是與具體的程序設計語言有一定的相關性

補充:

算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表着用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個算法有缺陷,或不適合於某個問題,執行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間複雜度時間複雜度來衡量。

算法優劣與所用計算機無關,但與算法描述語言有關

3.  對長度爲n 的線性表作快速排序,在最壞情況下,比較次數爲  (n*(n-1)/2)

4.  紅黑樹中已經有n個數據,尋找某個key是否存在的時間複雜度爲()。  O(logn)

解釋: 

紅黑樹是平衡二叉樹,也就是左右子樹是平衡的,高度大概相等。

這種情況等價於一塊完全二叉樹的高度,查找的時間複雜度是樹的高度,爲logn

5.  不用遞歸就不能實現二叉樹的前序遍歷()  錯誤,任何的遞歸程序都可以實現相應的非遞歸版本,要麼用棧,要麼用迭代的思想

6. 在數據結構中,從邏輯上可以將其分爲()  線性結構(如表 棧 隊列)和非線性結構(如樹 圖)

解釋:   

(1)數據結構的定義:

數據結構就是研究數據的邏輯結構物理結構以及它們之間相互關係,並對這種結構定義相應的運算且確保經過這些運算後所得到的新結構仍然是原來的結構類型。

(2)數據結構的劃分:

數據結構從邏輯上可分爲兩大類:

1)線性結構。

線性結構的特點是元素之間一對一的關係;除了最後一個元素,每個元素都有一個後繼;除了第一個元素,每個元素都有一個前驅。

常見的線性結構如線性表,棧,隊列。

2)非線性結構。

非線性結構的特點是一個元素可能有多個前驅和後繼。

常見的非線性結構如樹,圖。

7.  對線性表採用折半查找(二分查找),該線性表必須_______。有序的順序表(順序表:順序存儲的線性表)

具體:元素按值有序排列,並且採用順序存儲結構

8.  設n 是描述問題規模的非負整數,下面程序片段的時間複雜度是( )。O(logn)
x=2;
while(x<n/2)
x=2*x; 

9.The best time complexity of quick sort algorithm is: O(nlogn)

10.  對序列{15,9,7,8,20,-1,4}進行排序,進行一趟後數據的排列變爲{4,9,-1,8,20,7,15};則採用的是()排序   希爾排序

A. 選擇
B. 快速
C. 希爾
D. 起泡

解釋: 

1)

希爾排序,選擇步長爲3,

分爲[15,8,4][9,20][7,-1]三組,

對這三組插入排序得[4,8,15][9,20][-1,7]

對應相對位置,即爲一次排序後的結果.

2)採用排除法,迅速掃描一下,最大的不再最後,最小的不再最前,肯定排序冒泡和選擇;再次掃描,不是倆個有序數列,排除選擇。所以就是希爾。咋樣之間看出來增量是三呢?觀察前後不一樣的數字,發現 15,4-》4,15  ; 假設增量爲6,驗證不對。  7,-1,-》-1,7;假設增量爲3,

11. 下面描述中正確的爲: C

A. 線性表的邏輯順序與物理順序總是一致的。 (線性表邏輯上是線性的,存儲上可以是順序的,可以是鏈式的 )
B. 線性表的順序存儲表示優於鏈式存儲表示。 (順序存儲和鏈式存儲各有優缺點 )
C. 線性表若採用鏈式存儲表示時所有結點之間的存儲單元地址可連續可不連續。 (鏈式存儲可以連續,可以不連續,存儲時不管其連續還是不連續,都是用指針指向下一個結點 )
D. 二維數組是其數組元素爲線性表的線性表。 (二維數組是順序存儲的線性表,其元素都是線性表的元素 )

12.  KMP算法下,長爲n的字符串中匹配長度爲m的子串的複雜度爲()  O(N+M)

補充:簡單匹配算法的時間複雜度爲O(m*n),KMP匹配算法時間複雜度爲O(m+n).

13.  設有5000個待排序的記錄關鍵字,如果需要用最快的方法選出其中最小的10個記錄關鍵字,則用下列()方法可以達到此目的。   堆排序算法

14.  假設你只有100MB的內存,需要對1GB的數據進行排序,最合適的算法是()  歸併排序算法

解釋: 插入,冒泡,選擇三個都需要把所有的數據一次性加入到內存中(屬於內部排序算法),才能進行。而歸併排序可以完成。

首先內存只有100Mb,而數據卻有1Gb,所以肯定沒法一次性放到內存去排序,只能用外部排序,而外排序通常是使用多路歸併排序,即將原文件分解成多個能夠一次性裝入內存的部分(如這裏的100Mb),分別把每一部分調入內存完成排序(根據情況選取適合的內排算法),然後對已經排序的子文件進行多路歸併排序(勝者樹或敗者樹)。

15.  某算法的時間複雜度爲O(n2),表明該算法的   執行時間與n^2成正比

16.  設有一個10階的對稱矩陣A,採用壓縮存儲方式,以行序爲主存儲,a11 爲第一元素,其存儲地址爲1,每個元素佔一個地址空間,則a85 的地址爲()  33

解釋:a85表明我們僅僅需要存儲下三角元素,

數組下標從1開始,只存儲其下三角形元素,在a8,5的前面有7行,第1行有1個元素,第2行有2個元素,…,第7行有7個元素,這7行共有(1+7)×7/2=2 8個元素,在第8行中,a8,5的前面有4個元素,所以,a8,5前有28+4=32個元素,其地址爲33。

17.  如果要求一個線性表既能較快的查找,又能適應動態變化的要求,則可採用 ()查找法。  分塊查找

null 順序查找 二分查找 分塊查找
表的結構 有序、無序 有序 塊內無序、塊間有序
表的存儲 順序、鏈式 順序 順序、鏈式
平均查找長度 最大 最小 中間
時間複雜度 O(n) O(log2n) 中間

 

分塊查找是折半查找順序查找的一種改進方法,分塊查找由於只要求索引表是有序的,對塊內節點沒有排序要求,因此特別適合於節點動態變化的情況。而折半查找,不適合動態變化;順序查找查詢複雜度高;

19.  如果需要在O(nlog2n)的時間複雜度內完成對含有n個元素的關鍵字序列進行穩定性排序,可以選擇的排序方法是(    )  歸併

20.  假設某算法的時間複雜度符合遞推關係式T(n)=2T(n/2)+n,那麼該算法的時間複雜度相當於() O(nlogn)

舉例說明:由時間代價嚴格推出時間複雜度比較複雜,對於這種題,可用特例驗證,不過需要注意的是特例不能取太少,至少n取到5,這樣規律基本就可以確定了。 
  T(1)=1 
  T(2)=2T(1)+2=4 
  T(3)=2T(1)+3=5 
  T(4)=2T(2)+4=12 
  T(5)=2T(2)+5=13
  很容易排除D選項,其遞增速率介於O(n)和O(n2)之間,實際上可以參考歸併排序的遞推公式。

2)

所以根據主定理公式(master),f(n)=n = n^log(b,a)=n,滿足第二條,T(n) = O(n^log(b,a) * logn) = O(nlogn)

21.  現有一數列{3, 2, 5, 7, 6, 8},要求按升序排序,下面說法正確的是:

快速排序,每次選擇最後一個元素作爲支點,需要比較12次

解釋:快速排序,選擇最後一個元素爲基,第一遍需要5次比較,

第二趟對8的左側進行快速排序,需要4次比較,結果使6,7交換,

第三次在6的左側快速排序,需要2次比較,
第四次在5的左側快排,需要1次比較,加起來5+4+2+1=12次

22.  智能手機的手勢解鎖密碼是九宮格3X3的點陣中的一條路徑,這條路 徑最少連接四個點,最多連接九個點,請問總共有多少種解鎖密碼?(    )  10^5量級的方案

不考慮失效的方式(就是不連貫的情況),那麼如果9個點的話,排列組合有9!(362880)種,比9少的都達不到9的量級,在減去失效的也不會跨量級,所以是100000的量級

23.  n皇后最壞情況下的時間複雜度爲:() O(n^n)

解釋N皇后:

一個n*n的棋盤,要在上面放n個皇后。規則:兩個皇后之間如果是同列、同行、同對角線它們會互相攻擊。也就是說:棋盤上的任意兩個皇后不能爲同列、同行、同對角線。對於這個問題、當n不大的時候,可以用窮舉法實現。對於n皇后,每一行有n個位置可以放,一共n行。就會有n的n次方種情況

24.  一個線性序列(30,14,40,63,22,5),假定採用散列函數Hash(key)=key%7來計算散列地址,將其散列存儲在A[0~6]中,採用鏈地址法解決衝突。若查找每個元素的概率相同,則查找成功的平均查找長度是(      )。4/3

解釋: 

0 -- 14 -- 63

1 -- 22

2 -- 30

5 -- 40 -- 5

平均查找長度不應該是(1 + 2 + 1 + 1 + 1 + 2) / 6 = 4 / 3

補充:哈希查找的平均查找長度:先將所有元素按照hash函數以及相應的解決衝突的方案放入相應的bucket中,然後再計算每個元素的查找次數之和的平均值[注意:衝突發生時,查找次數將增加]。

二叉搜索樹的平均查找長度ASL:sum(每一層節點數*該層高度)/節點數   【根節點的高度爲1】  

有時候也會考察失敗節點的平均查找長度!

25.  下列陳述錯誤的是(        )A

A. 概率算法的期望執行時間是指反覆解同一個輸入實例所花的平均執行時間
B. 概率算法的平均期望時間是指所有輸入實例上的平均期望執行時間
C. 概率算法的最壞期望事件是指最壞輸入實例上的期望執行時間
D. 概率算法的期望執行時間是指所有輸入實例上的所花的平均執行時間

解釋:

(1)平均的期望時間:所有輸入實例上平均的期望執行時間。

(2)最壞的期望時間:最壞的輸入實例上的期望執行時間。

26. 在下列表述中,()是錯誤的 ABD

A. 含有一個或多個空格字符的串稱爲空串 (長度爲0 的串爲空串,即爲“” 。由多個空格字符構成的字符串稱爲空格串 )
B. 對n(n>0)個頂點的網,求出權最小的n-1條邊便可構成其最小生成樹 (如果權值最小的n-1條邊構成了環的話,就不能構成最小生成樹 )
C. 選擇排序算法是不穩定的 
D. 平衡二叉樹的左右子樹的結點數之差的絕對值不超過1  (平衡二叉樹的左右子樹高度之差的絕對值不超過1. ,高度之差,並非節點數之差)

 

part two:計算機網絡基礎知識

1.  因特網中用於文件傳輸的協議是FTP。(        )正確

2.  Linux 是多用戶多任務類型的操作系統。() 正確

補充:linux:多用戶多任務 window:單用戶多任務

3.  以下傳輸介質性能最好的是 () 。  光纖

解釋:光纖比雙絞線、同軸電纜抗干擾能要強,雙絞線比同軸電纜電纜抗干擾能力要好點、微波對抗干擾能力要更強一些,但是性價比還是用光纖比較好

4.  break和continue的區別:break語句通常用在循環語句和開關語句中。當break用於開關語句switch中時,可使程序跳出switch而執行switch以後的語句;當break語句用於do-while、for、while循環語句中時,可使程序終止循環而執行循環後面的語句,即滿足條件時便跳出循環。continue語句的作用是跳過循環體中剩餘的語句而強行執行下一次循環

5.  在 Internet 中不需運行 IP 協議的設備是 ()  集線器

路由器
集線器
服務器
工作站

解釋:

路由器是網絡層設備,需要運行IP協議;

服務器和工作站的網絡層也運行IP協議;

集線器是物理層設備,不需要運行IP協議。

6.  ()對實時系統最重要。 及時性

實時系統是指: 系統能及時響應外部事件的請求,在規定的時間安內完成對該事件的請求,並控制所有實時任務協調一致地運行

7.  關係數據模型的三個組成部分包含有,數據模型的三要素:數據結構,數據操作,數據的約束條件

8.  局域網體系結構中 () 被劃分成 MAC 和 LLC 兩個子層。  數據鏈路層

解釋:

局域網將數據鏈路層分割爲哪兩個子層?這兩個子層分別完成了什麼功能? 
答:局域網將數據鏈路層劃分爲兩個子層:邏輯鏈路控制LLC子層和介質訪問控制MAC子層,從而使LAN體系結構能適應多種傳輸介質。因此,對各種類型的局域網來說,其物理和MAC子層需要隨着所採用介質和訪問方法的不同發生改變,而這些不同對於LLC子層來說都是透明的。 
(1) LLC作爲數據鏈路層的一個子層,使用MAC子層爲其提供的服務,通過與對等實體LLC子層的交互爲它的上層網絡層提供服務。 
(2) MAC子層是用來實現介質訪問控制的網絡實體。MAC子層主要功能包括數據幀的封裝/拆封、幀的尋址與識別、幀的接收與發送、鏈路的管理、幀的差錯控制及MAC協議的維護等。

9.  與 WHERE G BETWEEN 60 AND 100 語句等價的子句是 ( )    WHERE G>=60AND G < =100

10.  對換技術的主要作用是( )。  提高內存利用率

解釋:對換是指將內存中的暫時還不能被運行的進程或者暫時用不到的程序和數據,調到外存上,以便騰出足夠的內存供在外存中等待的作業使用。這樣就可以內存的利用率提升上去。

11.  在可變式分區方案中,某一作業完成後,系統回收期主存空間,並與相鄰空閒區合併,爲此需要修改空閒區表,造成空閒區數增 1 的情況是()

無上鄰空閒區,也無下鄰空閒區

12.  構造計算機網絡的目的是() 資源共享

解釋:最基本的功能 數據通信 核心主要功能 資源共享   ,所以目的就是資源共享

13.  一個廣域網和一個局域網互聯,需要的設備是()。  交換機

交換機
網關
集線器
NIC

補充解釋:局域網通過廣域網實現互聯,常用互聯設備有路由器和網關,而主要的互聯設備是路由器

另外解釋:

路由器是局域網連接到Internet的一種重要的設備,數據在Internet傳輸中是以路由的方式傳輸的

同時這道題也可以用排除法

B,網關,本身不是一種設備,是一種概念,是一個局域網連接到外網的接口

C,集線器,可以認爲是物理層的設備,實現數據的廣播轉發,在局域網內使用

D,網卡,可以認爲是數據鏈路層的設備,對數據幀的處理,明顯也是在局域網內

14.  一個進程釋放一種資源將有可能導致一個或幾個進程()。  由阻塞變就緒

就緒狀態是進程等待CPU。當某個進程需要的資源(非CPU)被其它進程佔用時,會進入阻塞狀態,而其它進程釋放了資源後,則等待該資源的進程會由阻塞狀態轉爲就緒狀態,等待CPU執行。

15.  事務是數據庫運行的基本單位。如果一個事務執行成功,則全部更新提交;如果一個事務執行失敗,則已做過的更新被恢復原狀,好像整個事務從未有過這些更新,這樣保持了數據庫處於( )狀態。  一致性

解釋:

  • 原子性(Atomicity):事務作爲一個整體被執行,包含在其中的對數據庫的操作要麼全部被執行,要麼都不執行。

  • 一致性(Consistency):事務應確保數據庫的狀態從一個一致狀態轉變爲另一個一致狀態。一致狀態的含義是數據庫中的數據應滿足完整性約束。

  • 隔離性(Isolation):多個事務併發執行時,一個事務的執行不應影響其他事務的執行。

  • 持久性(Durability):已被提交的事務對數據庫的修改應該永久保存在數據庫中。

16.  操作系統爲了管理進程和資源,需要構造和維護的表有    I/O表、文件表、內存表和進程表

17. 若要對數據進行字符轉換、數字轉換以及數據壓縮,應在OSI的(      )層上實現。 表示層

補充:

表示層的作用:對數據進行翻譯、加密和壓縮(表示協議數據單元PPDU);

網絡層的作用:負責數據包從源到宿的傳遞和網際互聯(包);

傳輸層的作用:提供端到端的可靠報文傳遞和錯誤恢復(段);

會話層的作用:建立、管理和終止會話(會話協議數據單元);

18.   下面不採用虛電路服務的網絡是__________。  internet網絡

解釋:互聯網一般採用的是TCP/IP協議,因此其中流轉的數據絕大部分是以數據包的形式傳送的。但有部分業務是採用一些特殊協議在網絡中建立了VPN通道或IP隧道來通信,這部分業務可以認爲採用的是虛電路方式傳送數據。

19.  一個進程執行時按{0,2,5,3,6,3,0,2,3,2}順序訪問頁,進程分得3塊主存塊,採用LRU,產生多少次缺頁中斷()  7

解釋:

LRU(Least recently used,最近最少使用)算法根據數據的歷史訪問記錄來進行淘汰數據,其核心思想是“如果數據最近被訪問過,那麼將來被訪問的機率也更高”。
用鏈表實現算法如下:

  1. 新數據插入到鏈表頭部;
  2. 每當緩存命中(即緩存數據被訪問),則將數據移到鏈表頭部;
  3. 當鏈表滿的時候,將鏈表尾部的數據丟棄。

對題中所給進程序列{0,2,5,3,6,3,0,2,3,2}和3個主存塊,按照LRU算法,調度過程如下:
0 !
0 2 !
0 2 5 !
2 5 3 !
5 3 6 !
5 6 3
6 3 0 !
3 0 2 !
0 2 3
0 3 2
其中標“!”的步驟中發生了缺頁中斷,總計7次。

20.  CBW指令的功能是( ) 把AL中的符號位擴展到AH中

21.  下列關於IP 路由器功能的描述中,正確的是( )。 I  II   IV
Ⅰ. 運行路由協議,設置路由表
Ⅱ. 監測到擁塞時,合理丟棄 IP 分組
Ⅲ. 對收到的 IP 分組頭進行差錯校驗,確保傳輸的 IP 分組不丟失
Ⅳ、 根據收到的 IP 分組的目的 IP 地址,將其轉發到合適的輸出線路上

解釋:

IP層爲什麼不對數據部分進行差錯校驗?

 

因爲網絡層是“盡最大努力完整的傳輸數據包”,差錯檢測已由數據鏈路層實現,IP層沒必要再進行一次校驗。

優點就是,因爲不負責差錯檢測和糾錯,所以可獲得較高的傳輸性能。

缺點就是,因爲IP層不負責差錯檢測,那麼錯誤檢測只能在傳輸層或應用層被發現,使糾正錯誤的時間增加了。

 

試想一下,如果兩臺PC跨INTERNET通信,之間隔了很多臺路由器,PC1給PC2發了個數據包,到達第一臺路由器後,在轉發的過程中,數據包發生了錯誤:

1-因爲IP層不做差錯校驗,所以第2臺路由器通過廣域網協議(HDLC、PPP等)收到數據後,只要數據鏈路層正常,它就無法得知收到的IP包是否正確,錯誤就會這麼傳遞下去,至到PC2才被發現。

2-如果IP可以實現差錯校驗的功能,那麼到了第2臺路由器時,路由器2就不會再繼續發錯誤包了,錯誤就會終止。

 

不過現在網絡傳輸的誤碼率都極低,所以IP層沒必要再做一次校驗!

22.  細同軸電纜的傳輸距離理論上最大爲?   185米   粗同軸電纜是500米

23.  併發的、面向連接的服務器可以有n個不同的進程 (  ) 錯誤

解釋;面向連接,意味着運行於兩臺主機裏面的兩個進程之間存在一條鏈接,所以是一對一的。
所以,客戶機端一個進程,服務器端一個進程!

24.  RFID 是一種接觸式的自動識別技術,它通過射頻信號自動識別目標T象並獲取相關數據。  錯誤,非接觸式的

25. 【重要】爲什麼現在的計算機採用二進制,而不是八進制或十六進制?  BCD

A. 二進制表示的數字比較冗長
B. 具有兩種穩定狀態的元件(如晶體管的導通和截止,繼電器的接通和斷開,電脈衝電平的高低等)容易找到,用二級制來表示就比較方便
C. 二進制運算規則簡單
D. 採用二進制後,僅有的兩個符號“1”和“0”正好可以與邏輯命題的兩個值“真”和“假”相對應,能夠方便地使用邏輯代數這一有力工具來分析和設計計算機的邏輯電路

26. 在下列說法中哪些是正確的?  CD

A. 虛電路與電路交換中的電路沒有實質不同
B. 在通信的兩站間只能建立一條虛電路
C. 虛電路也有連接建立、數據傳輸、連接拆除三個階段
D. 虛電路的各個結點不需要爲每個分組做路徑選擇判斷

27.  

假設一個系統包括A到G七個進程,R到W六中資源。資源間的所有權關係,如下:

1、進程A佔有資源R,請求資源S

2、進程B不佔有任何資源,請求資源T

3、進程C不佔任何資源,請求資源S

4、D佔有資源U,請求資源S和T

5、E有資源T,請求資源V

6、F有資源W,請求資源S

7、G有資源V,需要資源U

下列說法正確的是:AC

A. 進程D、E、G被死鎖
B. 進程D、E、C被死鎖
C. 進程A、C、F沒有被死鎖
D. 進程A、D、E被死鎖

畫出資源分配圖:資源指向進程,代表進程佔有此資源;進程指向資源,代表進程請求該資源。

可以看到將DEG但單獨拎出來發現:其構成一個環路,則死鎖!(因爲箭頭是有向的,所以如果形成一個環,說明這個環中的所有進程都被死鎖。)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章