1 演算法概述

2021-09-01 08:31:11 字數 1005 閱讀 1931

1.演算法概述-演算法與程式+演算法複雜性分析

明天就要考試了,不知道是否能來得及,我在想反正都要研究演算法的,比如現在開始弄了,考試只是研究演算法路上的乙個小測試而已,廢話不說,開始吧

演算法與程式:

演算法是什麼,很多人能大概feel到演算法是什麼,但是要很準確的說出來,有難以啟齒,書上是這麼概述的,演算法是:解決問題的一種方法或者過程。對於我的理解,就是你解決這個問題的思路及你的**實現方法,例如地圖最短路徑的尋徑方法,你怎麼解決,那你就肯定寫一大堆的方法在類裡面,然後呼叫這樣,那麼這一大堆的方法封裝起來不就是你的尋徑演算法了嗎!

演算法複雜性分析:

對於很久之前,計算機的記憶體和效能都很落後,所以考察程式往往的關鍵點是看能否記憶體占有率,效能是否高,到了今天我們的計算機去到了乙個比較先進的程度,很多人就忽略了良好的程式設計習慣,還有大部分的時間是放在ui或者功能上面,其實對於演算法的研究是很有必要的,因為好演算法是乙個軟體的支撐,我還記得我有一次面試,是一家只有幾個人的公司,超小,他一上來就問我什麼貪心演算法,還有排序演算法,當時我對這些是不記得了,也不熟悉,然後被他當面的羞辱了一番,這件事情我到現在依然無法釋懷,因為他說到了我的弱點,就是演算法,我無力反擊,所以演算法的確是每一家公司都需要的,還是認真學好吧,如果說設計模式是哲學,那麼演算法就是數學。

時間複雜性:需要時間資源的量稱為時間複雜性,這是乙個抽象的量,我們通常以乙個元操作作為單位,然後進行計算,當然不可能沒有情況都計算,所以分3種,最好,最壞,平均,很明顯最壞往往是我們最關心的,因為不能有最壞啊,崩潰是系統的大忌,穩定是乙個軟體最基本的東西。隨著發展,那麼就出現了複雜性漸近形態(他碼的,書上的語言好複雜),這就是我們平時看到的o作為漸近複雜度,其實原理也不難,就是公式/t(n),然後什麼常數啊,去掉就可以了,當n-無窮,求出大o就ok了(具體還有其他的統計細節,我覺得太麻煩了,思想才是重點)

空間複雜性:這個和時間複雜性差不多,主要說的是記憶體大小啊,程式佔的大小啊,會產生的大小啊,這個我覺得平時用到的不多,因為沒有時間的意義重要.

太數學了,我數學學得不好,還是哲學的東西好玩,不過希望下來的各個演算法帶來的壓力不大。over!

演算法初階1 演算法概述

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

演算法總結 1 演算法概述

演算法 演算法 algorithm 在thomas h.cormen書中的定義是求解良說明的計算問題的工具。這裡提到的良說明就是完全符合iso標準而不存在任何歧義的說明。一般來說,問題陳述說明了期望的輸入和輸出。演算法則是描述乙個特定的過程來實現該輸入 輸出的關係。進入例子 演算法好比是菜譜,我們的...

1演算法的概述

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