《大話數據結構》讀後總結(三)

1、算法

一、定義

  • 算法是解決特定問題求解步驟的描述,在計算機中表現爲指令的有限序列,而且每條指令表示一個或多個操做。

ps:算法爲了解決某個或某類問題,須要把指令表示成必定的操做序列,操做序列包括一組操做,每個操做都完成特定的功能。php

二、算法與數據結構的關係

  • 算法是數據結構的具體運用。

三、算法的特性

3.1 輸入輸出
  • 算法具備零個或多個輸入,可是必定有輸出。

ps:輸入是用戶對計算機發出的指令,輸出是計算機的反饋結果算法

3.2 有窮性
  • 算法在執行有限的步驟以後,自動結束而不會出現無限循環,而且每個步驟在可接受的時間內完成。
3.3 肯定性
  • 算法的每一步驟都具備肯定的含義。算法在必定條件下,只有一條執行路徑,相同的輸入只能有惟一的輸出結果。算法的每一個步驟被精肯定義而無歧義。
3.4 可行性
  • 算法的每一步都必須是可行的,每一步都可以經過執行有限次數完成。算法能夠轉換爲程序上機運行,並獲得正確的結果。

四、算法設計的要求

4.1 正確性
  • 算法的正確性是指算法至少應該具備輸入、輸出和加工處理無歧義性、能正確反映問題的需求、可以獲得問題的正確答案。數據結構

    1.算法程序沒有語法錯誤。學習

    2.算法程序對於合法的輸入數據可以產生知足要求的輸出結果。測試

    3.算法程序對於非法的輸入數據可以得出知足規格說明的結果。設計

    4.算法程序對於精心選擇的,甚至刁難的測試數據都有知足要求的輸出結果。內存

  • 證實一個複雜算法在全部層次上都是正確的,代價很是昂貴。因此通常狀況下,咱們把層次3做爲一個算法是否正確的標準。效率

4.2 可讀性
  • 算法設計的另外一目的是爲了便於閱讀、理解和交流。
4.3 健壯性
  • 當輸入數據不合法時,算法也能作出相關處理,而不是產生異常或莫名其妙的結果。
4.4 時間效率高和存儲量低
  • 時間效率指的是算法的執行時間,對於同一個問題,若是有多個算法可以解決,執行時間短的算法效率高,執行時間長的效率低。
  • 存儲量需求指的是算法在執行過程當中須要的最大存儲空間,主要指算法程序運行時所佔用的內存或外部硬盤存儲空間。

歡迎掃描下方二維碼,持續關注:

image

互聯網工程師(id:phpstcn),咱們一塊兒學習,一塊兒進步互聯網

相關文章
相關標籤/搜索