成人app

算法基礎

點擊打開在線編譯器,邊學邊練

1. 算法的特性

1) 輸入輸出

算法具有零個或者多個輸入,同時,算法具有至少一個的輸出。

成人app對于在屏幕上打印”Hello World”一樣,你可以不需要有任何的輸入,直接輸出得到結果即可,而對于一個沒有輸出的算法,沒有任何意義。

2) 確定性

算法的每一步都具有確定的含義,無二義性。任何條件下,算法只有唯一的一條執行路徑,即對于相同的輸入只能得到相同的輸出。

請注意,如果算法的目的是產生一個隨機數字,每一次運行產生了不同的結果,看上去好像違反了算法確定性原則,但計算機產生隨機數亦是使用一種(或多種)算法解決,以線性同余產生隨機數為例,其利用了CPU時間的不同產生的不同的結果,當CPU的時間完全一樣的時候依舊會產生相同結果,只不過人類無法察覺到如此精確的時間區別。

 

3)有窮性

一個算法總是需要(輸入合法的情況下)在有限的步驟結束,即每個算法需要在有窮的時間內完成。

成人app這是算法與程序的最主要的區別,程序可以無限制循環的執行下去。對于此,你可以理解為一個算法必須要有一個”邊界“,即使一個算法需要計算機連續運算50年,但依舊是有窮的,只不過這個算法意義已經不是很大了。

4)可行性

一個算法是可以被執行的,即算法中的每個操作都可以通過已經實現的基本運算執行有限的次數完成。

成人app盡管在目前計算機解存在著沒有實現成功的極為復雜的算法,但是并不能說的上是無法實現,只不過是受到現在的工具和人類的大腦限制了,這屬于理論研究的范圍。

2. 算法設計要求

1) 正確性

正確性(Correctness)指的是該算法能夠滿足預先指定的功能與性能的需求,即能夠得到正確答案。

其大致可以分為以下四點:

成人appa)該算法中不含任何語法錯誤。

成人appb)程序對于幾組輸入數據能夠得到滿足需求的結果。

成人appc)程序對于非法的輸入也能夠得到滿足需求說明的結果(如拋出異常)。

d)程序對于精心挑選的嚴苛數據依舊能夠產生滿足需求的結果。


2)健壯性

健壯性(Robustness)指的是當輸入數據不合法時,算法也能做出相關的處理,而不是產生不可預計的效果。

 

3)可讀性

可讀性(Readability)指的是算法是可以閱讀,理解和交流的。

4)耗時低,占用空間少

運行時間(Running time)與占用空間(Storage space)概念,在設計算法時,我們總是希望能夠更少的使用時間和空間達成我們的目標。

我們算法與數據結構的研究的重點就是為了讓程序運行塊,占用空間低。



本文固定URL:http://hnsaiyang.com/course/89

上一課:數據結構與算法 下一課:數據結構基礎
第一章 數據結構入門
第二章 鏈表
第三章 棧
第四章 隊列
第五章 從C語言到C++
第六章 串,數組,矩陣,廣義表
第七章 樹
第八章 圖
第九章 算法—查找
第十章 算法—排序
第十一章 算法&競賽,思維培養
第十二章 后記
Dotcpp在線編譯