1.演算法的特性:有窮性,確定性,可行性,輸入(>=0),輸出(>=1)
設計演算法時,通常應考慮達到以下目標:1、正確性 2、可讀性 3、健壯性 4、高效率與低儲存量需求
2.二叉線索樹每個節點都有指向前驅和後繼的指標(錯)
【解析】有的指向左右孩子
3.對大小均為n的有序表和無序表分別進行順序查詢,在等概率查詢的情況下,對於查詢成功,它們的平均查詢長度是相同的,而對於查詢失敗,它們的平均查詢長度是不同的(對)
【解析】
查詢失敗的情況下,無序表查詢需要更長。
用公式來說話吧:假設有n個元素,無序表查詢失敗的平均長度為n(因為肯定要找到末尾,這個沒異議吧);而對於有序表,查詢的過程中可以中途停止查詢(比如1 2 3 5 6,查詢4,所以找到5就可以判定查詢失敗了),所以有序表順序查詢,失敗的情況共有n種情況,分別在查詢到第1個位置,第2個位置...第n個位置時判定查詢失敗,所以總的平均查詢長度為(1+2+...+n)/ n = (n+1)/2。所以只要n不等於1,有序表順序查詢失敗的平均長度(n+1)/2必小於無序表的n。
4.度量乙個程式執行的時間通常有兩個方法:事前分析估計,事後統計
5.深度優先遍歷和拓撲排序可以判斷出乙個有向圖是否有環(迴路)
6.資料的邏輯結構與資料元素本身的內容和形式無關(對)
7.堆的定義如下:n個元素的序列當且僅當滿足下關係時,稱之為堆。
(ki <= k2i,ki <= k2i+1)或者(ki >= k2i,ki >= k2i+1), (i = 1,2,3,4...n/2)要麼是最大化堆,要麼是最小化堆
8.用鄰接表儲存圖,深搜,廣搜,拓撲時間複雜度都是o(n+e)。
9.稀疏矩陣的壓縮儲存方法: 一 、三元組順序表 二、行邏輯聯接的順序表 三、 十字鍊錶
10.折半查詢的條件:順序儲存的有序表
11.a[n,n]是對稱矩陣,將下面三角(包括對角線)以行序儲存到一維陣列t[n(n+1)/2]中,則對任一上三角元素a[i][j]對應t[k]的下標k是()備註:陣列下表從0開始。
a.i(i+1)/2+jb.j(j+1)/2+i(√)c.i(j+i)/2+1 d.j(i+1)/2+1
12.若用乙個大小為
7的陣列來實現迴圈佇列,且當前
rear
和front
的值分別為0和
2,當從佇列中刪除乙個元素,再加入兩個元素後,
rear
和front
的值分別為多少?( )。
a. 1
和5 b.2
和4c.2和3d. 3和2
13.普里姆
演算法的時間複雜度為o(n^
2),
它對稠密圖較為適合。
克魯斯卡爾演算法的時間複雜度為o(eloge), 它對稀疏圖較為適合。
14.對於一棵具有n個結點的二叉樹,用二叉鍊錶儲存時,其指標總數為2n個,其中n-1個用於指向孩子,n+1個指標是空閒的。
15.二叉樹是指度為2的有序
樹。一棵結點數為n的二叉樹,其所有結點的度的總和是n-1
。
結點的度:結點子樹的個數
16.對n個記錄的表r[1..n]進行直接插入排序,設關鍵字逆有序,則所需的關鍵字間的比較次數為 n(n-1)/2
【解析】插入到 有序列的時候,是從最後開始比較!
void insertsort(int r[ ],int n)
}
17.演算法分析的目的是( )。
a. 找出資料結構的合理性;
b. 分析演算法的效率;
c. 研究演算法中輸入和輸出關係;
d. 分析演算法的易理解性;
演算法分析是指對乙個演算法的執行時間和占用空間做定量的分析,計算相應的數量級。分析演算法的目的就是要降低演算法的時間複雜度和空間複雜度,提高演算法的執行效率。18.採用遞迴方式對順序表進行快速排序,下列關於遞迴次數的敘述中,正確的是(d)
a.遞迴次數與初始資料的排列次序無關
b.每次劃分後,先處理較長的分割槽可以減少遞迴次數
c.每次劃分後,先處理較短的分割槽可以減少遞迴次數
d.遞迴次數與每次劃分後得到的分割槽處理順序無關
【解析】定義乙個全域性變數,在遞迴函式裡+1,這樣遞迴的次數就放到全域性變數裡了,只要是給定了乙個順序表和當前分出的前後兩個區域,那麼當下無論是先長還是先短,遞迴次數是不變的。
但是對於乙個順序表來說,初始資料的排列是對遞迴次數有影響的。比如:乙個遞增的表和乙個雜亂的表,都是選第乙個資料作為支點,那麼在函式裡
qsort( int )
給支點找位置;
qsort(左邊);
qsort(右邊);
這兩種情況下,遞增的表會出現左側qsort()不用遞迴的情況,右邊一直遞迴,二叉樹就會退化為單鏈表,會達到o(n);雜亂的表可能會左右比較「相當」的遞迴,如果軸點恰好平分兩個待排序部分,會達到o(logn)
19.n個節點按照不同的順序插入到二叉排序樹中,可以得到n!個不同的二叉排序樹,在檢索乙個關鍵碼時候,比較次數最小的樹叫做最佳二叉排序樹,但是最佳二叉排序樹構造代價大,並且很難動態的保持。所以現實中不怎麼使用「最佳」,更多的使用「較佳」的平衡二叉樹。
最佳二叉排序樹的特點是除了最下一層不滿外,其他都是充滿的。
資料結構與演算法分析之概念掃盲
author administrator ds data structure 資料結構 資料之間是有聯絡的 key value 資料之間是有結構的 tree binary tree 資料之間是可以進行運算的 search delete update insert 基本概念6個 資料 data 能被計...
資料結構 資料結構緒論
資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...
資料結構 資料結構演算法
分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...