今天為大家?guī)?a href="http://hljzzgx.com/v/tag/2562/" target="_blank">算法的詳細教程
算法的特點
算法,顧名思義是為了解決一類問題而制定的一個方法。這與程序設(shè)計和數(shù)據(jù)結(jié)構(gòu)密切相關(guān)。算法的描述形式也多種多樣,像傳統(tǒng)流程圖、結(jié)構(gòu)化程序圖以及計算機程序語言等等。下面就為大家講解算法的相關(guān)內(nèi)容。
-
**確定性** 在C程序中,每一個執(zhí)行語句的步驟都應(yīng)當(dāng)是被確切定義的。同理,算法的每一個步驟也都應(yīng)當(dāng)是被確切定義的。任何一個過程不能有二義性,在編輯算法的過程中,必須對每個執(zhí)行語句做出嚴格而又清楚的定義。
-
**有窮性** 在C語言中,每一個算法所執(zhí)行的語句步數(shù)一定是有窮的。并且每一步都可以在有窮的時間內(nèi)完成,不能無限制的執(zhí)行下去。如果程序或者程序的某一部分不能在有窮的時間內(nèi)完成,那么程序就會永無止境的運行下去,進入一個死循環(huán)。
-
**可行性** 在C程序中,每一句執(zhí)行語句必須可以有效的運行出結(jié)果。否則就會出現(xiàn)邏輯性的錯誤。比如:
int num1,num2,num3; //聲明三個整型變量
scanf("%d,%d,%d",&num1,&num2,&num3); //輸入這三個數(shù),為其賦值
if(num2!=0) //如果num2的值不為0
num3=num1/num2; //num3的值等于num1的值除num2的值
else
printf("error"); //輸出 error
很顯然,當(dāng) num2 的值為0時,上述代碼中的第4行代碼就是一個無效的執(zhí)行語句。因為0不可以做分母。
-
**輸入及輸出** 在C語言中,一個完整的算法應(yīng)該存在一個或者多個輸入/輸出的值。輸入的值作為執(zhí)行算法的一些初始量,輸出的值則為算法執(zhí)行后的結(jié)果。比如:
int a,b,c; //聲明三個變量 a b c
scanf("%d,%d,%d",&a,&b,&c); //輸入a b c 的值,為其賦值
上述示例的代碼就需要輸入多個值,為變量賦值。
又如:
main()
{
printf("hello word"); //輸出hello Word
}
上述示例的代碼就不需要輸入值。
算法的優(yōu)缺點
算法,既然有其優(yōu)點,自然也會有缺點。
-
**正確性** 在C語言中,算法的正確性指的是只要輸入的數(shù)據(jù)是合法數(shù)據(jù),該算法都可以得到一個確切又準(zhǔn)確的值。
-
**可讀性** 在C語言中,算法的可讀性指的是一個算法被理解的難易程度。一個算法的可讀性越高,那么這個算法后期就越容易被理解。相反,若是一個算法的可讀性很低,那么這個算法在后期將很難被修復(fù)和完善。
-
**健壯性** 在C語言中,算法的健壯性指的是一個算法對于非法輸入的包容性。因為每一個用戶對同一程序的理解不同,因此在程序使用的過程中會出現(xiàn)輸入數(shù)據(jù)非法的情況。而程序的健壯性使得算法不會因為用戶的非法輸入而癱瘓。
-
**空間****復(fù)雜度和時間復(fù)雜度** 在C語言中,算法的空間復(fù)雜度和時間復(fù)雜度指的是一個算法儲存所需要的體積以及這個算法運行所需要的時間。這也是衡量一個算法是否優(yōu)秀的唯一指標(biāo)。而到現(xiàn)在,計算機硬件已經(jīng)高度發(fā)達,算法的空間復(fù)雜度已經(jīng)不那么重要了。而如何開發(fā)出一個功能復(fù)雜卻又運行快速的算法成為了現(xiàn)在的目標(biāo)。
今天的內(nèi)容就到這里,下期小編將帶大家繼續(xù)學(xué)習(xí),各位看官老爺記得查閱哦~
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
發(fā)布評論請先 登錄
相關(guān)推薦
關(guān)于10大C語言基礎(chǔ)算法
這10大C語言基礎(chǔ)算法,在面試中會經(jīng)常遇到! 算法是一個程序和軟件的靈魂,作為一名優(yōu)秀的程序員,只有對一些基礎(chǔ)的算法有著全面的掌握,才會在
發(fā)表于 04-29 14:30
C語言教程:STL-for-each算法
C語言教程:STL-for-each算法(電源技術(shù)版面費5400)-文檔為C語言教程:STL-for-each
發(fā)表于 09-17 12:42
?3次下載
評論