算法必須產(chǎn)生正確的結(jié)果 算法和程序的區(qū)別是怎樣的?
算法和程序的區(qū)別是怎樣的?算法是解決問題的步驟;程序是算法的代碼實(shí)現(xiàn);算法依靠程序來完成功能;程序需要算法作為靈魂程序是結(jié)果,算法是手段(編寫好程序所采用的操作方法)。還寫了一個(gè)函數(shù)的程序,采用不同的
算法和程序的區(qū)別是怎樣的?
算法是解決問題的步驟;程序是算法的代碼實(shí)現(xiàn);算法依靠程序來完成功能;程序需要算法作為靈魂
程序是結(jié)果,算法是手段(編寫好程序所采用的操作方法)。還寫了一個(gè)函數(shù)的程序,采用不同的算法可以使程序體積大,效率差。所以算法是編程的本質(zhì)。
算法是程序設(shè)計(jì)的核心,算法的質(zhì)量在很大程度上決定了程序的效率。一個(gè)好的算法可以降低程序的時(shí)間復(fù)雜度和空間復(fù)雜度。首先選擇一個(gè)好的算法,然后用合適的數(shù)據(jù)結(jié)構(gòu),這樣程序的效率就會(huì)大大提高。
算法和程序是有限的指令序列,但程序是算法,算法不一定是程序。
(1)在語言描述中,程序必須用規(guī)定的編程語言編寫,算法非常任意;
(2)在執(zhí)行時(shí)間中,算法描述的步驟必須有限,程序可以無限期執(zhí)行。算法是對(duì)解決特定問題的步驟的描述。它是一個(gè)有限的指令序列。
算法應(yīng)具有以下五個(gè)重要特征:
1。有限性,這意味著算法必須能夠在執(zhí)行有限個(gè)步驟后終止;
2。確定性,這意味著算法的每一步都必須有一個(gè)精確的定義;
3。輸入,一個(gè)算法有0個(gè)或多個(gè)輸入來描述操作對(duì)象的初始情況,所謂“0輸入”是指算法本身確定的初始條件;
4。輸出。算法有一個(gè)或多個(gè)輸出,以反映處理輸入數(shù)據(jù)的結(jié)果。沒有輸出算法是沒有意義的;
5。有效性。算法中的任何計(jì)算步驟都可以分解為基本的可執(zhí)行操作步驟,即每個(gè)計(jì)算步驟都可以在有限的時(shí)間內(nèi)完成(也稱為有效性)。
一個(gè)完整的計(jì)算機(jī)算法必須滿足哪幾個(gè)準(zhǔn)則,做簡(jiǎn)要說明?
算法必須具有以下屬性:
(1)算法必須正確,即對(duì)于任何一組輸入,包括合理的輸入和不合理的輸入,它總能得到預(yù)期的輸出。如果一個(gè)算法只能對(duì)合理的輸入得到期望的輸出,而不能在異常情況下得到期望的輸出結(jié)果,那么它就是不正確的。
(2)算法必須由一系列特定的步驟組成,每個(gè)步驟都可以被計(jì)算機(jī)理解和執(zhí)行,而不是抽象和模糊的概念。
(3)每個(gè)步驟都有一個(gè)明確的執(zhí)行順序,即上一步在哪里,下一步是什么,必須明確無誤。
(4)無論算法多么復(fù)雜,都必須在有限步之后結(jié)束和終止,即算法的步數(shù)必須是有限的。在任何情況下,算法都不能陷入無限循環(huán)。