牛客網查詢型別 排序的選擇題 手記2

2021-08-30 13:11:39 字數 1966 閱讀 2520

1、假設你只有100mb的記憶體,需要對1gb的資料進行排序,最合適的演算法是()

歸併排序

外部排序指的是大檔案的排序,即待排序的記錄儲存在外儲存器上,待排序的檔案無法一次裝入記憶體,需要在記憶體和外部儲存器之間進行多次資料交換,以達到排序整個檔案的目的。一般用歸併排序, 空間複雜度是o(n). 一般來說外排序分為兩個步驟:預處理和合併排序。首先,根據可用記憶體的大小,將外存上含有n個紀錄的檔案分成若干長度為t的子檔案(或段);其次,利用內部排序的方法,對每個子檔案的t個紀錄進行內部排序。這些經過排序的子檔案(段)通常稱為順串(run),順串生成後即將其寫入外存。這樣在外存上就得到了m個順串(m=[n/t])。最後,對這些順串進行歸併,使順串的長度逐漸增大,直到所有的待排序的機率成為乙個順串為止。

2、下列的排序演算法中,初始資料集的排列順序對演算法的效能無影響的是()

一堆(堆排序)海歸(歸併排序)找朋友

3、基於比較方法的n個資料的內部排序。最壞情況下的時間複雜度能達到的最好下界是() o(nlogn)

基於比較的排序演算法有:(1)直接插入排序;(2)氣泡排序;(3)簡單選擇排序;(4)希爾排序;(5)快速排序;(6)堆排序;(7)歸併排序。

分配式排序:基數排序、桶排序

注意是 基於比較 的排序,演算法導論中有給出證明,基於比較的排序的演算法最壞時間複雜度下界為nlogn。

演算法複雜度的上界是大的也就是壞情況的下界是小的也就是好情況的。 而最壞情況的最優下界的意思就是,最壞情況下這些演算法中的時間複雜度最小的。最壞情況下,最好的是堆排序和歸併排序o(nlogn)。(與數列的初始位置無關)

4、基於比較的排序的時間複雜度下限是多少?o(nlogn)

基於比較的排序演算法是不能突破o(nlogn)的。簡單證明如下:

n個數有n!個可能的排列情況,也就是說基於比較的排序演算法的判定樹有n!個葉子結點,比較次數至少為log(n!)=o(nlogn)(斯特林公式)。

5、當資料序列有序時,快速排序的時間複雜度達到最壞的情況o(n^2)。

6、有字串行(q,h,c,y,p,a,m,n,r,d,f,x),新序列(m,h,c,d,f,a,q,n,r,y,p,x)是下列()排序演算法一趟掃瞄結果。 步長為6的希爾排序

7、現有一數列,要求按公升序排序,下面說法正確的是:

快速排序:選擇最後乙個元素為基,第一遍需要5次比較,第二趟對8的左側進行快速排序,需要4次比較,結果使6,7交換,第三次在6的左側快速排序,需要2系比較,第四次在5的左側快排,需要1次比較,加起來5+4+2+1=12次。

插入排序:從後向前比較是不是應該: 8-6,比較一次;8-6-7–》8-7-6,比較兩次;8-7-6-5,比較一次;8-7-6-5-2,比較一次;8-7-6-5-2-3–》8-7-6-5-3-2,比較兩次,總共比較7次。

8、下標從1開始,在含有n個關鍵字的小根堆(堆頂元素最小)中,關鍵字最大的記錄有可能儲存在()位置上。[n/2]+2

解析:給出 1 2 3 4 5 6 7 ,n=7,根據最小堆規則,根要比左右節點小,所以只可能在4 5 6 7 這幾個位置上,排除法。

9、拓撲排序運算只能用於()。有向無環圖

10、列舉排序,通常也被叫做秩排序,演算法基本思想是:對每乙個要排序的元素,統計小於它的所有元素的個數,從而得到該元素在整個序列中的位置,時間複雜度為o(n^2)。

11、 折半插入排序演算法:在排序中關鍵字比較次數同記錄初始排列無關的。

12、對n個數字進行排序,期中兩兩不同的數字的個數為k,n遠遠大於k,而n的取值區間長度超過了記憶體的大小,時間複雜度最小可以是? o(n)

解析:先通過hash來獲得這k個數,以及每個數對應的個數,然後對k個數進行排序。又因為n遠大於k,所以k個數排序複雜度約為1。所以整體複雜度為o(n)。

13、兩分法插入排序所需比較次數與待排序記錄的初始排列狀態相關() 錯

14、

牛客網(選擇題)

1.資料庫系統的體系結構是 兩級模式結構和一級映象 模式結構和一級映象 模式結構和兩級映象 模式結構和 映象 解析 概念模式 conceptual schema 是資料庫中全部資料的整體邏輯結構的描述。外模式 external schema 是使用者與資料庫系統的介面,是使用者用到的那部分資料的描述...

牛客網選擇題

2.下列哪種方式不能使程序進入就緒狀態 d a cpu排程給優先順序更高的執行緒 b 阻塞的執行緒獲得資源或者訊號 c 在時間片輪轉的情況下,如果時間片到了 d 獲得spinlock未果 程序三個狀態 執行 就緒 阻塞 等待。高優先順序的搶占cpu,使得原來處於執行狀態的程序轉變為就緒狀態。阻塞的程...

牛客網 多型經典選擇題

接下來我們需要理解題中p test 所執行的過程 所以本題選擇b b 1 注 要點 重點 c 多型的實現方式是虛函式表和虛表指標。其中,c 編譯器為每個類內含有virtual函式的類生成乙個虛函式表,基類生成基類的虛函式表,虛函式表中包含類內所有虛函式的函式指標,即函式指標陣列。c 呼叫虛函式時通過...