1樓:小肥肥啊
選擇d。
快速排序是拿比較向鄰1個單元的大小,並按一定方向排列,大小方向不符合的就把2個單元交換,依次比較下去。
例如:12,23,34,45,56,67,這樣就確定了乙個最大(最小)的單元,並把它排列一端,交換次數為n-1,然後在除了最值外的n-1個單位中繼續排列,出來第2個最大(最小)值,次數為n-2,以此類推。
總次數為n-1+n-2+n-3+.+1=n(n-1)/2。
擴充套件資料:
分類我們說「線性」和「非線性」,只在邏輯層次上討論,而不考慮儲存層次,所以雙向連結串列和迴圈連結串列依舊是線性表。
在資料結構邏輯層次上細分,線性表可分為一般線性表和受限線性表。一般線性表也就是我們通常所說的「線性表」,可以自由的刪除或新增結點。受限線性表主要包括棧和佇列,受限表示對結點的操作受限制。
優點線性表的邏輯結構簡單,便於實現和操作。因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。
特徵1、集合中必存在唯一的乙個「第一元素」。
2、集合中必存在唯一的乙個 「最後元素」 。
3、除最後乙個元素之外,均有唯一的後繼(後件)。
4、除第乙個元素之外,均有唯一的前驅(前件)。
儲存結構
線性表主要由順序表示或鏈式表示。在實際應用中,常以棧、佇列、字串等特殊形式使用。
鏈式表示指的是用一組任意的儲存單元儲存線性表中的資料元素,稱為線性表的鏈式儲存結構。它的儲存單元可以是連續的,也可以是不連續的。
在表示資料元素之間的邏輯關係時,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊(即直接後繼的儲存位置),這兩部分資訊組成資料元素的儲存映像,稱為結點(node)。
它包括兩個域;儲存資料元素資訊的域稱為資料域;儲存直接後繼儲存位置的域稱為指標域。指標域中儲存的資訊稱為指標或鏈。
2樓:匿名使用者
d~冒泡最壞情況下,就是反序的序列排序,例如3 2 1排成1 2 3
這樣排的話,比較次數就是n*(n-1)/2快速排序最壞情況,就是每次選的基準數,都對比過整段。然後,將劃分這段數為0和n-1,例如
1 2 3 4
1做第一次對比數,從後向前對比,比完後劃分,2 3 4分成下一段,遞迴
這樣比較就是n*(n-1)/2次~
3樓:雋風
好像沒乙個對的
冒泡是n^2
快速排序的期望值是nlogn,最壞情況是n^2
長度為n的有序線性表,在最壞情況下,二分查詢只需要比較log2n次。誰給解釋一下
4樓:匿名使用者
當有序連結串列為順序儲存時才能採用二分查詢,二分查詢需比較log2n次,而順序查詢需比較n次。
5樓:匿名使用者
乙個bai有序線性表 可以看做在du乙個完全的二叉排序zhi樹比如0 1 2 3 4 5 6 7 我們dao就可以版看做這樣乙個樹權
42 6
1 3 5 7
0二分查詢在圖論上的含義 正是在這樣乙個二叉樹上查詢某個節點最多需要的比較次數也就是樹的高度這麼多
那麼樹高怎麼算 就是log2(n)取整數 時間複雜度就是o(log2n)了
6樓:龍翎
應該是log2n+1次
設有一元素為整數的線性表La1,a2,a3an
上面是核心 和乙個隨手寫的簡單測試,注意看數字15,左邊都比15小,右邊都比15大。你的這個題目其實就是快速排序演算法的一部分,有興趣可以去看看快排的原理,我這個函式就是從之前寫的快排拿出來小改了一下的。下面是完整的測試函式,隨手寫的,可能不太優雅 include using namespace s...
c語言線性表的實現中的頭插法和尾插法
頭插法建表 演算法 p listnode malloc sizeof listnode 生成新結點 p data ch 將讀入的資料放入新結點的專資料域中p next head head p 尾插法建表屬 演算法 p listnode malloc sizeof listnode 生成新結點 p d...
已知n1,n2,n3為齊次線性方程組ax0的基礎解系
不對角線法則即可.k 不等於0 k 可逆 所以 r n1 2n2,kn1 4n2 kn3 n1 2n2 n3 r n1,n2,n3 k r n1,n2,n3 3 所以 n1 2n2,kn1 4n2 kn3 n1 2n2 n3 線性無關 已知n1,n2,n3為齊次線性方程組ax 0的基礎解系 n1 2...