- 從零開始學(xué)C語言
- 戴晟暉 祝明慧等編著
- 545字
- 2018-12-27 13:04:11
1.3.2 算法的特點(diǎn)
解決問題我們需要一個(gè)可行的算法,而如何去衡量這個(gè)算法是否得當(dāng),是否可行呢?通常,算法具有以下5個(gè)重要的特征。
1.有窮性
一個(gè)算法應(yīng)包括有限個(gè)操作步驟,其中每一步都應(yīng)在合理的時(shí)間范圍內(nèi)完成。有的可能要花很長(zhǎng)的時(shí)間來執(zhí)行指定的任務(wù),但仍將在一定的時(shí)間內(nèi)終止。執(zhí)行的時(shí)間沒有嚴(yán)格的限制,受所要處理問題的約束。
2.確定性
算法在指導(dǎo)計(jì)算執(zhí)行每步程序時(shí),這些指令都是明確的,沒有任何歧義。例如:
輸出:A/正整數(shù)
是無法執(zhí)行的,因?yàn)檎麛?shù)指的是一類數(shù),沒有指定A除以哪一個(gè)正整數(shù),所以這個(gè)步驟是不確定的。
3.有效性
算法中的每個(gè)步驟都應(yīng)該是有意義、能夠有效執(zhí)行的,并能得到確定的結(jié)果。比如,開方運(yùn)算的數(shù)不能是負(fù)數(shù);分母不能夠?yàn)?。
4.輸入
一個(gè)算法有零個(gè)或多個(gè)輸入。在某些算法中,所需要的數(shù)據(jù)可以由用戶用輸入設(shè)備輸入,例如,求兩個(gè)數(shù)中的較大值,這兩個(gè)數(shù)可以是用戶隨意輸入的兩個(gè)數(shù),它們的值是不確定的。另外在編程的過程中也可以直接用兩個(gè)確定的數(shù)進(jìn)行比較,這時(shí)就不需要用戶的輸入,即零輸入。
5.輸出
一個(gè)算法有一個(gè)或多個(gè)輸出。算法的輸出反映了輸入數(shù)據(jù)加工后的結(jié)果,沒有輸出的算法是毫無意義的。例如:求兩個(gè)數(shù)的最大公約數(shù),執(zhí)行后,若這兩個(gè)數(shù)有最大公約數(shù)就輸出,若沒有最大公約數(shù)就輸出“這兩個(gè)數(shù)無最大公約數(shù)”給用戶以反饋。
- Instant Apache Stanbol
- Visual Basic 6.0程序設(shè)計(jì)計(jì)算機(jī)組裝與維修
- C語言程序設(shè)計(jì)立體化案例教程
- 大學(xué)計(jì)算機(jī)基礎(chǔ)(第2版)(微課版)
- Rust Essentials(Second Edition)
- Symfony2 Essentials
- 可解釋機(jī)器學(xué)習(xí):模型、方法與實(shí)踐
- Java Web程序設(shè)計(jì)任務(wù)教程
- Python Data Analysis Cookbook
- Julia數(shù)據(jù)科學(xué)應(yīng)用
- Application Development with Parse using iOS SDK
- 嵌入式Linux C語言程序設(shè)計(jì)基礎(chǔ)教程
- SCRATCH編程課:我的游戲我做主
- Effective C++:改善程序與設(shè)計(jì)的55個(gè)具體做法(第三版)中文版(雙色)
- Kotlin程序員面試算法寶典