原创 算法導論 — 思考題4-2 參數傳遞代價

(參數傳遞代價)我們有一個貫穿本書的假設——過程調用中的參數傳遞花費常量時間,即使傳遞一個NNN個元素的數組也是如此。在大多數系統中,這個假設是成立的,因爲傳遞的是指向數組的指針,而非數組本身。本題討論三種參數傳遞策略:   1.

原创 算法導論 — 8.1 排序算法的下界

筆記 我們所熟知的插入排序、歸併排序、快速排序等排序算法,它們的排序過程都依賴於比較元素間的大小,我們稱這些算法爲比較排序。本節討論比較排序算法的運行時間的下界。   給定一個輸入序列<a1,a2,…,an><a_1, a_2,

原创 算法導論 — 8.2 計數排序

筆記 假設輸入的nnn個元素中的每一個都是在000 ~ kkk內的一個整數。kkk表示了輸入元素所處的範圍。一般在kkk遠小於nnn時,可以採用計數排序算法。   計數排序的基本思想是:對每一個輸入元素xxx,確定小於xxx的元素

原创 算法導論 — 4.3 用代入法求解遞歸式

筆記 代入法求解遞歸式分爲兩步:   1) 猜測解的形式。   2) 用數學歸納法證明猜測的解是正確的。   例如,我們要確定遞歸式T(n)=2T(⌊n/2⌋)+nT(n)=2T(⌊n/2⌋)+nT(n)=2T(⌊n/2⌋)+n的

原创 算法導論 — 4.2 矩陣乘法的Strassen算法

筆記 給定兩個n×nn×nn×n正方矩陣AAA和BBB,這兩個矩陣的乘法定義爲          其中          下面是矩陣乘法的僞代碼。      很顯然,執行SQUARE-MATRIX-MULTIPLY需要花費Θ(n3

原创 算法導論 — 思考題8-4 水壺

(水壺)假設給了你nnn個紅色的水壺和nnn個藍色的水壺。它們的形狀和尺寸都各不相同。所有紅色水壺的容量都不一樣多,藍色水壺也是如此。而且,對於每一個紅色水壺來說,都有一個對應的藍色水壺,兩者容量相等;反之亦然。   你的任務是找

原创 算法導論 — 4.1 最大子數組問題

筆記 本節給出了分治法的一個例子。給定一個數組A[1..n]A[1..n]A[1..n],找出一個元素和爲最大的連續子數組A[i..j]A[i..j]A[i..j],其中1≤i≤j≤n1 ≤ i ≤ j ≤ n1≤i≤j≤n,稱這

原创 算法導論 — 思考題8-6 合併有序列表的下界

(合併有序列表的下界)合併兩個有序列表是我們經常會遇到的問題。作爲MERGE-SORT的一個子過程,我們在2.3.1節中已經遇到過這一問題。對這一問題,我們將證明在最壞情況下,合併兩個都包含nnn個元素的有序列表所需的比較次數的下

原创 算法導論 — 思考題 7-1 Hoare劃分的正確性

(Hoare劃分的正確性)本章中的PARTITION算法並不是其最初的版本。下面給出的是最早由C. R. Hoare所設計的劃分算法:      a. 試說明HOARE-PARTITION在數組A = {13, 19, 9, 5,

原创 算法導論 — 思考題7-5 三數取中劃分

(三數取中劃分)一種改進RANDOMIZED-QUICKSORT的方法是在劃分時,要從子數組中更細緻地選擇作爲主元的元素(而不是簡單地隨機選擇)。常用的做法是三數取中法:從子數組中隨機選出三個元素,取其中位數作爲主元(見練習7.4

原创 算法導論 — 思考題2-4 逆序對

(逆序對)假設A[1..n]A[1..n]A[1..n]是一個有nnn個不同數的數組。若i<ji < ji<j且A[i]>A[j]A[i] > A[j]A[i]>A[j],則對偶(i,j)(i, j)(i,j)稱爲A的一個逆序對(

原创 算法導論 — 思考題4-1 遞歸式例子

(遞歸式例子)對下列每個遞歸式,給出T(n)T(n)T(n)的漸近上界和下界。假定n≤2n ≤ 2n≤2時T(n)T(n)T(n)是常數。給出儘量緊確的界,並驗證其正確性。   a. T(n)=2T(n/2)+n4T(n)=2T(

原创 算法導論 — 4.5 用主方法求解遞歸式

筆記 利用主定理可以對形如T(n)=aT(n/b)+f(n)T(n) = aT(n/b) + f(n)T(n)=aT(n/b)+f(n)的遞歸式直接求解。下面先給出主定理的描述。   令a≥1a ≥ 1a≥1和b>1b > 1b>

原创 算法導論 — 4.4 用遞歸樹方法求解遞歸式

筆記 在應用代入法求解遞歸式時,需要事先做出一個好的猜測。然而,有時候做出好的猜測是很困難的,此時可以考慮採用遞歸樹方法。在遞歸樹中,每個結點表示一個單一子問題的代價。創建遞歸樹之後,對樹的每層的各子問題的代價進行求和,得到每一層

原创 算法導論 — 思考題8-5 平均排序

(平均排序)假設我們不是要完全排序一個數組,而只是要求數組中的元素在平均情況下是升序的。更準確地說,如果對所有的i=1,2,…,n−ki = 1, 2, …, n−ki=1,2,…,n−k有下式成立,我們就稱一個包含nnn個元素的