演算法總結 1 演算法概述

2022-09-04 06:36:11 字數 1239 閱讀 3138

演算法

演算法(algorithm)在thomas h. cormen書中的定義是求解良說明的計算問題的工具。這裡提到的良說明就是完全符合iso標準而不存在任何歧義的說明。

一般來說,問題陳述說明了期望的輸入和輸出。演算法則是描述乙個特定的過程來實現該輸入\輸出的關係。

進入例子:演算法好比是菜譜,我們的輸入是食材,輸出則是菜餚。而這個烹飪的過程即是演算法。同菜譜一樣,演算法就像是一種做菜的方法,不存在實體。菜譜可以有很多種,但是好吃不好吃又是另一說了。演算法也是如此,好的演算法,有著精簡效率的特性,而差的演算法有著一塌糊塗的複雜度。演算法複雜度即是我們在演算法領域中要討論的重要課題。

演算法解決的問題通常有如下的特性:

1、存在許多候選解,但大多數候選解都沒有解決手頭的問題。尋找乙個真正的解或者乙個最好的解可能是乙個很大的挑戰。(如同做出一道好菜一般)

2、存在實際運用。如求解最短路徑,在實際中,找到最短路徑對於一些物流和貨運公司可能是很好的訊息。

難題:在學習過程中大部分時間我們討論有效演算法。我們關於效率的一般量度是速度,即乙個演算法花多長時間產生結果。然而一些問題,目前還不知道有效的演算法。比如後續我們要討論的np完全問題。

為什麼np完全問題有趣呢?

第一,當前對於np完全問題,是否存在有效演算法是未知的。

第二,np完全問題集具有乙個非凡的性質,如果某個np完全問題存在有效演算法,那麼所有的np完全演算法都存在有效演算法。

第三,有幾個np完全問題類似於一些有著有效演算法的問題。

乙個具體的例子:乙個具有倉庫的快遞公司。每天在倉庫為每輛車輛裝貨發出去,將貨物送到不同的幾個位址。每天結束時,每輛貨車必須回到倉庫,以便第二天的裝貨。為了減少成本,公司希望選擇投遞站的乙個序,按此序產生每輛貨車行駛的最短距離。這個就是著名的「旅行商問題」,並且它是np完全的。它沒有已知的有效演算法。

效率:做乙個例子,存在乙個計算機a和b,他們共同研究問題1,a耗時0.10s,b耗時0.11,就得到了你想要的結果。當然在這個例子中,你覺得不同的演算法可能沒有啥區別,只是不到眨眼的功夫。但現在出現了問題2,a耗時20分鐘,但是b卻需要23天。這時你可能就覺得不太對勁了。這便是演算法存在的意義之一。當然更加誇張的例子也是存在的。也許a耗時幾十分鐘就能解決,而b卻需要4*10^20年。

上面的例子表明我們應該像計算機硬體一樣把演算法看成是一種技術。整個系統的效能不但依賴於選擇快速的硬體而且還依賴於選擇有效的演算法。正如其他計算機技術正在快速推進一樣,演算法也在快速的發展。

是否具有演算法知識和技術的堅實基礎是區分真正熟練的程式設計師與初學者的乙個特徵。有乙個好的演算法背景你能做的事情會更多。

1 演算法概述

1.演算法概述 演算法與程式 演算法複雜性分析 明天就要考試了,不知道是否能來得及,我在想反正都要研究演算法的,比如現在開始弄了,考試只是研究演算法路上的乙個小測試而已,廢話不說,開始吧 演算法與程式 演算法是什麼,很多人能大概feel到演算法是什麼,但是要很準確的說出來,有難以啟齒,書上是這麼概述...

演算法初階1 演算法概述

天祿貔貅 王冬冬 技術部落格 1.1什麼是演算法?字面義 演算法就是用於計算的方法,通過這種方法可以達到預期的結果。專業定義 演算法是模型分析的一組可行的 確定的和有窮的規則。從程式設計角度 演算法由一系列求解問題的指令構成,能夠根據規則的輸入在有限的時間內獲得有效的輸出結果。演算法的五個特徵 有窮...

1演算法的概述

演算法 algorithm 是指解題方 而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果乙個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間 空...