❶ 演算法的有窮性和死循環
看你寫出while(1),那麼你一定是在用程序來實現演算法。
首先你要明確知道演算法不只有程序實現。
其次,你要了解演算法在計算機系統中處於哪個層次?

計算機系統實現
你可以了解一下計算機系統的演變,目前的計算機系統都是按照這種層次轉換去設計的。
a)問題,也就是我們經常項目中遇到的需求文檔,這些都是用自然語言來描述的,什麼是自然語言?就是漢語、英語等這些人說的話。
b)演算法,演算法我們可以用自然語言,流程圖,偽代碼等來描述,這就是所謂項目詳細設計,演算法的大特性:
有窮性:一個演算法在執行有限步驟後,在有限時間內能夠實現的。
明確性:演算法中每一個步驟的表述都應該是確定的、沒有歧義的語句。
可計算性:演算法的可行性就是指每一個步驟都能夠有效地執行,並得到確定的結果,而且能夠用來方便地解決一類問題。
如果演算法違背了這些特性那就不叫演算法,這是前人以及眾人都認可的。
c)程序,程序就是我們開始碼代碼了,就是你要按照詳細設計去用代碼實現,這個時候你發現 詳細設計裡面寫了一段話 讓你無限循環即(while(1)),你會不會去揍這個寫詳細設計的?
後面我就不多說了,總結起來就是 程序不等價於演算法,演算法可以用程序來實現,程序的設計包含演算法,所以你說你的while(1)和演算法有窮性矛盾,是八竿子打不到的事情。
❷ 在C語言中,演算法的有窮性是指什麼
1、有窮性(有限性)。任何一種提出的解題方法都是在有限的操作步驟內可以完成的。
如果在有限的操作步驟內完不成,得不到結果,這樣的演算法將無限的執行下去,永遠不會停止。除非手動停止。例如操作系統就不具有有窮性,它可以一直運行。
2、一個演算法應該具有以下七個重要的特徵:
1)有窮性(Finiteness)
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
2)確切性(Definiteness)
演算法的每一步驟必須有確切的定義;
3)輸入項(Input)
一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4)輸出項(Output)
一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果.沒有輸出的演算法是毫無意義的;
5)可行性(Effectiveness)
演算法中執行的任何計算步都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成;
6) 高效性(High efficiency)
執行速度快,佔用資源少;
7) 健壯性(Robustness)
健壯性又稱魯棒性,是指軟體對於規范要求以外的輸入情況的處理能力。所謂健壯的系統是指對於規范要求以外的輸入能夠判斷出這個輸入不符合規范要求,並能有合理的處理方式。
❸ 演算法的有窮性是指什麼
演算法的有窮性是指演算法程序的運行時間是有限的 。
❹ 演算法的有窮性是指什麼
有窮性是指 演算法必須能在執行有限個步驟之後停止。不可以無限執行下去。
❺ 什麼是演算法的有窮性如何判斷演算法是否符合這個要求
所謂演算法有窮性是指一個演算法應包含有限的操作步驟,即在執行有限操作後演算法結束。
對於初學者來說,這是一個常見錯誤,具體說,就是容易編制一些死循環。要判斷演算法是否符合有窮性要求,沒有一個確定的方法,但也有些規律可循,以下是筆者的一點經驗:
首先,當然還是應該多積累經驗,你可能覺得這是句廢話,有經驗了還能出現此類錯誤嗎?但你不覺得經驗的積累絕不是拚命上機實踐就能有效獲得的,而應該講究方法。我以為,倒不急於上機實踐,而是在上機前先認真地閱讀自己或他人的程序,做到心裡有底,對程序有了一定的了解後再上機實踐,尤其是其中的循環部分,要能看出其入口是什麼,循環出口又是什麼,注意循環控制變數的變化情況,經過一番考慮後,再上機實踐,你就能做到舉一反三,事半而功倍。
其次,在程序中加入適當的檢測語句,也就是在程序調試過程中,在程序的適當位置加入一些「無用」的語句(一般就是加入一些簡單的輸出語句),尤其是在循環體內加入檢測語句,這樣就可以跟蹤程序的執行,出現問題時就更容易發現。