關於演算法的小歸納

2021-07-12 04:23:21 字數 2368 閱讀 5458

最近這段時間公尺老師一直在給我們將演算法,都已經快接近上了六七節演算法課了,加上專業課的資料結構也涉及到演算法,所以這學期和演算法打得交道比較多,對於演算法也算是有一些了解了。所以接下來呢,就由公尺老師將的演算法來歸納一些,順便談談自己的理解和看法:

一、演算法是什麼?

演算法(algorithm)是指解題方****而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制

從百科給出的定義可以知道演算法是一系列指令或者說是一種機制,用我們專業課資料結構的定義來說演算法是對特定問題求解步驟的一種描述,是指令的有限序列,用自己的話來說呢就是演算法是一種思想或者解決方案,為解決問題而誕生的。具體是什麼樣的呢?比如我們想要喝果汁,但是現在只有水果,想要喝到果汁的話,就需要將水果榨成汁,將水果榨成汁可以用榨汁機或者別的方法。而將水果榨成汁的這個過程就是我們針對如何喝到果汁的這個問題得出的演算法,也就是前面所說的解決方案。如圖所示:(渣畫技勿見笑~)

二、演算法都包括什麼?

演算法可以巨集泛的分為三類:

1、有限的,確定性演算法 :這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這 類演算法得出的結果常取決於輸入值。

2、有限的,非確定演算法:這類演算法在有限的時間內終止。然而,對於一 個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。

3、無限的演算法:是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的資料滿足而不終止執行的演算法。通常,無限演算法的產生是 由於未能確定的定義終止條件。

大致包括以下內容(如圖):

演算法常用的描述方式包括:

1、自然語言:就是用正常的書面語言或者口頭語言進行描述,不太好理解,較抽象。

2、結構化流程圖:

3、偽**:接近**的描述。

4、pad圖:問題分析圖(problem analysis diagram)的英文縮寫。

演算法的特徵:

三、為什麼要使用演算法?

首先,計算機科學家nicklaus wirth寫過一本書,書名叫:

演算法 + 資料結構 = 程式 (prentice-hall)

。這個書名就概括了計算機程式設計的精要。除過那些兒戲式的程式,比如「hello world!」,任何乙個有些規模的程式都需要某種形式的資料結構來儲存程式中用到的資料,還需要乙個或多個演算法將資料從輸入轉換為輸出。

其次,因為解決同樣的問題,往往存在多種演算法,知道哪種演算法效率最高對乙個高效的程式設計師非常重要。比如,現在至少有

六、七種排序演算法,如果知道快速排序比選擇排序效率更高,那麼就會讓排序過程變得高效。又比如,實現乙個線性查詢的演算法很簡單,但是如果知道有時二分查詢可能比線性查詢快兩倍以上,勢必會寫出乙個更好的程式。

最後,深入學習演算法,不僅是學習哪種演算法更高效,還要學習在演算法之間做出選擇,哪種演算法對你手頭上的問題是最合適的?寫程式時經常會面臨這樣的權衡,知道了演算法的優缺點,可以在解決任何特定問題時幫助你做出正確的選擇。

總而言之,演算法對於我們寫程式來說是必不可少的,對於提高寫程式的效率來說更是必不可少的,所以好好學演算法吧~

四、演算法的學習:

1、相關**:

visualgo:

51nod 問題:

俄羅斯方塊遊戲的演算法**:

leetcode,最近很火的演算法**:

topcoder每週都有競賽、獎金的:

晉中教育網的「資訊學競賽輔導」:

很多大學也有自己的競賽題庫,比如:

北大:杭電:

華中科技大學:

2、部落格類:

csdn大牛:

大牛:

感謝閱讀~祝您食用愉快~

歸納 日常小任務

任務 蒐集整理關於 多元影像資料 自適應鑲嵌 的資料 了解 多元遙感影象 根據不同的感測器所獲取的遙感影像,進行處理之後得到多源遙感影像 自適應 就是裝置會根據外部的鏈結 或者調解自動調解到恰當的引數,以便設配可以順暢執行 指處理和分析過程中,根據處理資料的資料特徵自動調整處理方法 處理順序 處理引...

演算法歸納(一)

1 給定乙個陣列arr,和乙個數num,請把小於等於num的數放在陣列的左邊,大於num的數放在陣列的右邊。要求額外空間複雜度o 1 時間複雜度o n public class demo1 5 public static void sort int arr,int num print arr pub...

回溯演算法歸納

輸入 乙個不包含重複元素的陣列candidates,乙個int target 輸出 用candidates中的元素組成target,輸出有多少種組合。輸出結果不能重複。規則 candidates中的元素可以使用多次。例如candidates 2,3,6,7 target 7,返回 7 2,2,3 結...