六十五:數(shù)據(jù)備份(Data Backup)
數(shù)據(jù)備份是把文件或數(shù)據(jù)庫從原來存儲的地方復(fù)制到其他地方的活動,其目的是為了在設(shè)備發(fā)生故障或發(fā)生其他威脅數(shù)據(jù)安全的災(zāi)害時保護(hù)數(shù)據(jù),將數(shù)據(jù)遭受破壞的程度減到最小。取回原先備份的文件的過程稱為恢復(fù)數(shù)據(jù)。
1.完全備份(Full Backup)。這種備份策略的優(yōu)點(diǎn)是當(dāng)發(fā)生數(shù)據(jù)丟失的災(zāi)難時.可以迅速恢復(fù)丟失的數(shù)據(jù)。不足之處是每天都對整個系統(tǒng)進(jìn)行完全備份.造成備份的數(shù)據(jù)大量重復(fù)。對于業(yè)務(wù)繁忙、備份時間有限的用戶,選擇這種備份策略是不明智的。
2.增量備份(Incremental Backup)。先進(jìn)行一次完全備份,在接下來的時間里只對當(dāng)天新的或被修改過的數(shù)據(jù)進(jìn)行備份。這種備份策略的優(yōu)點(diǎn)是節(jié)省了磁盤空間,縮短了備份時間;缺點(diǎn)是當(dāng)災(zāi)難發(fā)生時,數(shù)據(jù)的恢復(fù)比較麻煩.備份的可靠性也很差。
3.差分備份(Differential Backup)。先進(jìn)行一次系統(tǒng)完全備份,在接下來的幾天里.再將當(dāng)天所有與備份不同的數(shù)據(jù)(新的或修改過的)備份到磁盤上。差分備份策略在避免了以上兩種策略的缺陷的同時.又具有了其所有優(yōu)點(diǎn)。首先,它無須每天都對系統(tǒng)做完全備份,因此所需的備份時間短,并節(jié)省了磁盤空間。其次,它的災(zāi)難恢復(fù)也很方便.一旦發(fā)生問題,用戶只需使用完全備份和發(fā)生問題前一天的備份就可以將系統(tǒng)恢復(fù)。
六十七:貪心算法(Greedy algorithm)
貪心算法(又稱貪婪算法)是指,在對問題求解時,總是做出在當(dāng)前看來是最好的選擇。也就是說,不從整體最優(yōu)上加以考慮,他所做出的僅是在某種意義上的局部最優(yōu)解。
貪心算法不是對所有問題都能得到整體最優(yōu)解,關(guān)鍵是貪心策略的選擇,選擇的貪心策略必須具備無后效性,即某個狀態(tài)以前的過程不會影響以后的狀態(tài),只與當(dāng)前狀態(tài)有關(guān)。
六十八:分治法(Divide and Conquer)
在計算機(jī)科學(xué)中,分治法是一種很重要的算法。字面上的解釋是“分而治之”,就是把一個復(fù)雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題……直到最后子問題可以簡單的直接求解,原問題的解即子問題的解的合并。這個技巧是很多高效算法的基礎(chǔ),如排序算法(快速排序,歸并排序),傅立葉變換(快速傅立葉變換)。
六十九:動態(tài)規(guī)劃(Dynamic programming)
動態(tài)規(guī)劃(dynamic programming)是運(yùn)籌學(xué)的一個分支,是求解決策過程(decision process)最優(yōu)化的數(shù)學(xué)方法。20世紀(jì)50年代初美國數(shù)學(xué)家R.E.Bellman等人在研究多階段決策過程(multistep decision process)的優(yōu)化問題時,提出了著名的最優(yōu)化原理(principle of optimality),把多階段過程轉(zhuǎn)化為一系列單階段問題,利用各階段之間的關(guān)系,逐個求解,創(chuàng)立了解決這類過程優(yōu)化問題的新方法——動態(tài)規(guī)劃。1957年出版了他的名著《Dynamic Programming》,這是該領(lǐng)域的第一本著作。
七十:排序算法
所謂排序,就是使一串記錄,按照其中的某個或某些關(guān)鍵字的大小,遞增或遞減的排列起來的操作。排序算法,就是如何使得記錄按照要求排列的方法。排序算法在很多領(lǐng)域得到相當(dāng)?shù)刂匾暎绕涫窃诖罅繑?shù)據(jù)的處理方面。一個優(yōu)秀的算法可以節(jié)省大量的資源。在各個領(lǐng)域中考慮到數(shù)據(jù)的各種限制和規(guī)范,要得到一個符合實際的優(yōu)秀算法,得經(jīng)過大量的推理和分析。
七十一:迭代法(Iterative Method)
迭代法也稱輾轉(zhuǎn)法,是一種不斷用變量的舊值遞推新值的過程,跟迭代法相對應(yīng)的是直接法,即一次性解決問題。迭代法又分為精確迭代和近似迭代。“二分法”和“牛頓迭代法”屬于近似迭代法。迭代算法是用計算機(jī)解決問題的一種基本方法。它利用計算機(jī)運(yùn)算速度快、適合做重復(fù)性操作的特點(diǎn),讓計算機(jī)對一組指令(或一定步驟)進(jìn)行重復(fù)執(zhí)行,在每次執(zhí)行這組指令(或這些步驟)時,都從變量的原值推出它的一個新值。
七十二:分枝界限法(Branch and Bound Method)
分枝定界法是一個用途十分廣泛的算法,運(yùn)用這種算法的技巧性很強(qiáng),不同類型的問題解法也各不相同。分支定界法的基本思想是對有約束條件的最優(yōu)化問題的所有可行解(數(shù)目有限)空間進(jìn)行搜索。該算法在具體執(zhí)行時,把全部可行的解空間不斷分割為越來越小的子集(稱為分支),并為每個子集內(nèi)的解的值計算一個下界或上界(稱為定界)。在每次分支后,對凡是界限超出已知可行解值那些子集不再做進(jìn)一步分支。這樣,解的許多子集(即搜索樹上的許多結(jié)點(diǎn))就可以不予考慮了,從而縮小了搜索范圍。這一過程一直進(jìn)行到找出可行解為止,該可行解的值不大于任何子集的界限。因此這種算法一般可以求得最優(yōu)解。