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 時間效率高和存儲量低
- 時間效率指的是算法的執行時間,對於同一個問題,若是有多個算法可以解決,執行時間短的算法效率高,執行時間長的效率低。
- 存儲量需求指的是算法在執行過程當中須要的最大存儲空間,主要指算法程序運行時所佔用的內存或外部硬盤存儲空間。
歡迎掃描下方二維碼,持續關注:
互聯網工程師(id:phpstcn),咱們一塊兒學習,一塊兒進步互聯網