算法的特點
算法,顧名思義是為了解決一類問題而制定的一個方法。這與程序設計和數據結構密切相關。算法的描述形式也多種多樣,像傳統流程圖、結構化程序圖以及計算機程序語言等等。下面就為大家講解算法的相關內容。
-
**確定性** 在C程序中,每一個執行語句的步驟都應當是被確切定義的。同理,算法的每一個步驟也都應當是被確切定義的。任何一個過程不能有二義性,在編輯算法的過程中,必須對每個執行語句做出嚴格而又清楚的定義。
-
**有窮性** 在C語言中,每一個算法所執行的語句步數一定是有窮的。并且每一步都可以在有窮的時間內完成,不能無限制的執行下去。如果程序或者程序的某一部分不能在有窮的時間內完成,那么程序就會永無止境的運行下去,進入一個死循環。
-
**可行性** 在C程序中,每一句執行語句必須可以有效的運行出結果。否則就會出現邏輯性的錯誤。比如:
int num1,num2,num3; //聲明三個整型變量
scanf("%d,%d,%d",&num1,&num2,&num3); //輸入這三個數,為其賦值
if(num2!=0) //如果num2的值不為0
num3=num1/num2; //num3的值等于num1的值除num2的值
else
printf("error"); //輸出 error
很顯然,當 num2 的值為0時,上述代碼中的第4行代碼就是一個無效的執行語句。因為0不可以做分母。
-
**輸入及輸出** 在C語言中,一個完整的算法應該存在一個或者多個輸入/輸出的值。輸入的值作為執行算法的一些初始量,輸出的值則為算法執行后的結果。比如:
int a,b,c; //聲明三個變量 a b c
scanf("%d,%d,%d",&a,&b,&c); //輸入a b c 的值,為其賦值
上述示例的代碼就需要輸入多個值,為變量賦值。
又如:
main()
{
printf("hello word"); //輸出hello Word
}
上述示例的代碼就不需要輸入值。
算法的優缺點
算法,既然有其優點,自然也會有缺點。
-
**正確性** 在C語言中,算法的正確性指的是只要輸入的數據是合法數據,該算法都可以得到一個確切又準確的值。
-
**可讀性** 在C語言中,算法的可讀性指的是一個算法被理解的難易程度。一個算法的可讀性越高,那么這個算法后期就越容易被理解。相反,若是一個算法的可讀性很低,那么這個算法在后期將很難被修復和完善。
-
**健壯性** 在C語言中,算法的健壯性指的是一個算法對于非法輸入的包容性。因為每一個用戶對同一程序的理解不同,因此在程序使用的過程中會出現輸入數據非法的情況。而程序的健壯性使得算法不會因為用戶的非法輸入而癱瘓。
-
**空間****復雜度和時間復雜度** 在C語言中,算法的空間復雜度和時間復雜度指的是一個算法儲存所需要的體積以及這個算法運行所需要的時間。這也是衡量一個算法是否優秀的唯一指標。而到現在,計算機硬件已經高度發達,算法的空間復雜度已經不那么重要了。而如何開發出一個功能復雜卻又運行快速的算法成為了現在的目標。
今天的內容就到這里,下期小編將帶大家繼續學習,各位看官老爺記得查閱哦~
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
發布評論請先 登錄
相關推薦
評論