題目1:對於7個數進行氣泡排序,最壞情況下需要進行的比較次數為
第一輪冒泡,索引 1 的數與索引 2 的數比較,2與3比較……6與7比較,比較6次。
第二輪就是5次。以此類推,到最後一輪只有乙個數的時候不進行比較,是0次。
6+5+4+3+2+1+0= 21
題目二:給定初始序列,氣泡排序和插入排序分別需要多少次元素交換才能完成?
首先我們需要明白究竟是從大到小還是從小到大排序,題目中沒說,所以我們直接使用課程裡給的**:
氣泡排序:
第一輪:34和8換,64和51換,64和32換,64和21換。
第二輪:51和32換,51和21換。
第三輪:34和32換,34和21換。
第四輪:32和21換。
總共9次。
插入排序:
第一輪,放入34,
第二輪,放入8,交換一次
第三輪,放入64,不交換
第四輪,放入51,需要跟64交換(所謂交換就是64後移)
第五輪,放入32,需要跟64,51,34交換
第五輪,放入21,需要跟32,34,51,64交換
總共交換9次
題目三:對一組包含10個元素的非遞減有序序列,採用插入排序排成非遞增序列,其可能的比較次數和移動次數分別是
移動100次這就不可能了。移動的次數小於比較的也是不可能的。所以選a
題目四:序列中有多少逆序對?
選c題目五:希爾排序是穩定的。
錯。
可以看到,比如我們有這種情況:
1 4 4 3 ,增量為2,那麼,索引 0 和索引 2 的不需要交換,但是索引 1 和 索引 3 的需要交換一下。所以 4 和 4 雖然一樣,但是希爾排序後兩個的位置換了一下,即不穩定。
資料結構 樹 思考題3
浙江大學 資料結構 思考題 每週練習答案彙總 題目1 給出下面這棵樹的中序遍歷結果 根據中序遍歷的程式 我們可以看到它先不斷往左遍歷,然後在分叉處到根節點,再往右邊遍歷 首先到b,然後因為b的左邊什麼都沒有,所以再返回到b,列印b 然後再到d,列印d,然後再到a。之後遍歷右邊,分別依次輸出e和c 即...
資料結構 樹 思考題 5
浙江大學 資料結構 思考題 每週練習答案彙總 題目1 有個堆其元素在陣列中的序列為 58,25,44,18,10,26,20,12。如果呼叫deletemax函式刪除最大值元素,請猜猜看 程式中的for迴圈剛退出時變數parent的值是多少?首先child 2,然後判斷座標為2的和child 1 3...
演算法導論 思考題7 4 快速排序的棧深度
快速排序的棧深度 7.1節中的quicksort演算法包含了兩個對其自身的遞迴呼叫。在呼叫partition後,quicksort分別遞迴呼叫了左邊的子陣列和右邊的子陣列。quicksort中的第二個遞迴呼叫並不是必須的。我們可以用乙個迴圈控制結構來代替它。這一技術稱為尾遞迴,好的編譯器都提供這一功...