個人目前觀點,這本書的意義在於,實現乙個功能是必要的,實現乙個高效能的功能也是非常重要的,在大量輸入下,如果解決不了效能問題,那麼「正確」的程式也會變成錯誤的
幾個指數公式:
注意:在電腦科學中,除非有特別的說明,否則所有的對數都是以2為底的。
對數的定義: x
ax^a
xa= b 當且僅當logx
b\log_xb
logxb
= a對數的幾個定理:
概念:就是將數列的項依次用加號連線起來的函式,其實就是數列的和。附:
最簡單的乙個級數:
定義: 如果n整除a - b,那麼說a與b模n同餘,記為a≡b
(mod
n)
a\equiv b(modn)
a≡b(mo
dn), 換句話說就是無論是a還是b被n整除,所得的餘數都是相同的。。例如92≡62
≡2(m
od10)
92 \equiv 62\equiv 2(mod10)
92≡62≡
2(mo
d10)
(1)歸納證明法
步驟:第一步是證明基準情形,第二步是歸納假設
例子:菲波那切數 fk+
2=fk
+1+f
kf_ = f_ + f_k
fk+2=
fk+1
+fk
,f0=1
f_0 = 1
f0=1,f1=
1f_1 = 1
f1=1,f2=
2f_2 = 2
f2=2,f3=
3f_3 = 3
f3=3,f4=
5f_4 = 5
f4=
5,『…,
證明: fk+
1<(5
3)k+
1f_<(})^
fk+1
<(3
5)k
+1(2)反證法證明
反證法證明就是通過假設定理不成立,然後證明該假設導致的某個已知的性質不成立,從而原假設是錯誤的。乙個經典的例子就是證明存在無窮多個素數。為了證明這個結論,假設定理不成立。於是,就會有乙個結論,存在某個最大的素數p
kp_k
pk.另所有的素數p
1p_1
p1,p
2p_2
p2,p
3p_3
p3,p
4p_4
p4,…,p
kp_k
pk 依次排列,另 n = p
1p_1
p1p
2p_2
p2p
3p_3
p3p
4p_4
p4…p
kp_k
pk+ 1,很明顯n是乙個比p
kp_k
pk大的素數,因為存在定理,乙個整數要麼是素數,要麼是素數的乘積,由此可見n顯然是素數。
遞迴的四條基本法則:
(1)基準情形: 必須要有某些基準情形,它不通過遞迴呼叫就能執行通過。
(2)不斷推進:對於需要遞迴求解的情形,每一次遞迴呼叫都必須要使狀況朝向一種基準情形推進。
(3)設計法則:假設所有的遞迴呼叫都能執行。
(4)合成效益法則:在求解乙個問題的同乙個例項時,切勿在不通的遞迴呼叫中重複同樣的工作。例如,求解菲波那切數時,直接使用遞迴呼叫fk+
1+fk
f_ + f_
fk+1+
fk 求解值,便做了很多重複的工作。
什麼時候使用泛型?當求解乙個問題,除去物件的基本型別之外,實現方法是相同的,那麼就可以使用泛型。
public
class
selectproblem
;sortarray
(arr)
;for
(int i =
0; i < arr.length; i++)}
public
static
void sortarray (integer [
] arr)}}
}}
public
class
rectangle
public
double
getlength()
public
void
setlength
(double length)
public
double
getwidth()
public
void
setwidth
(double width)
}
第二步,重寫乙個comparable類
public
class
comparerectangle
implements
comparable
public
intcomparearea
(rectangle o1, rectangle o2)
else
}public
intcompareperimeter
(rectangle o1, rectangle o2)
else
}}
第三步,實現方法
public
class
findmaxprogram
}return arr[max];}
public
static rectangle findmaxperimeter
(rectangle [
] arr, comparerectangle cmp)
}return arr[max];}
public
static
void
main
(string[
] args)
; rectangle maxarea =
findmaxarea
(arr,
newcomparerectangle()
);rectangle maxperimeter =
findmaxperimeter
(arr,
newcomparerectangle()
);}}
第一章 引論
起源與背景 參考書如下 起源 上世紀初丹麥數學家erlang,在用隨機過程理論研究 網的過程中,建立起的一套理論系統。所以,排隊論是一門古老而又年青的理論。發展 二戰之後,排隊理論與稍後發展起來的數學規劃 決策論等共同構成了運籌學。在計算機系統結構和計算機網路領域中的應用起始於上世紀七十年代。排隊問...
DSAA 第一章 引論
練習 p12 1.1 date 2016 01 14 question 編寫乙個程式解決選擇問題,令 k n 2。include use rand and srand 動態生成陣列 include include use bool include use clock 計時 use time 作為 s...
編譯原理 第一章 引論
一,語言處理器 1 乙個整合的軟體開發環境,其中包括很多種類的語言處理器,比如編譯器 直譯器 彙編器 聯結器 載入器 偵錯程式以及程式概要提取工具。2 編譯器 把源程式的每一條語句都編譯成機器語言,並儲存成二進位制檔案,這樣執行時計算機可以直接以機器語言來執行此程式,速度很快 包括編譯器,反編譯器,...