算法的特性
- 有窮性:算法必須在執(zhí)行有限的步驟后終止,不會無限循環(huán)或進(jìn)入死循環(huán)
- 確定性:算法的每個步驟必須明確定義,沒有歧義。相同輸入應(yīng)產(chǎn)生相同的輸出
- 可執(zhí)行性:算法中的每個步驟都必須能夠被執(zhí)行,不會包含無法實(shí)現(xiàn)的操作
- 有零個或多個輸入:算法可以接受零個或多個輸入?yún)?shù),這些參數(shù)是問題的輸入數(shù)據(jù)
- 有一個或多個輸出:算法產(chǎn)生一個或多個輸出結(jié)果,這是問題的解決方案
三種基本結(jié)構(gòu)
三種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問題
- 順序結(jié)構(gòu):程序中的語句按順序執(zhí)行,從上到下,每個語句都執(zhí)行一次
- 選擇結(jié)構(gòu):選擇結(jié)構(gòu)允許根據(jù)條件的真假來執(zhí)行不同的代碼塊。這包括
if語句和switch語句等。例如,使用if語句可以根據(jù)條件執(zhí)行不同的代碼塊,從而實(shí)現(xiàn)分支邏輯if (condition) { // 代碼塊1 } else { // 代碼塊2 } - 循環(huán)結(jié)構(gòu):循環(huán)結(jié)構(gòu)允許多次執(zhí)行相同的代碼塊,直到滿足特定條件為止。這可以通過
for、while和do-while等循環(huán)語句來實(shí)現(xiàn)while (condition) { // 循環(huán)執(zhí)行的代碼 } for (int i = 0; i < n; i++) { // 循環(huán)執(zhí)行的代碼 }