算法是處理解決問題的思路及辦法,程序語言是按照一定語法把算法表達(dá)來。 算法是一系列解決問題的清晰指令,也就是說,能夠?qū)σ欢ㄒ?guī)范的輸入,在有限時間內(nèi)獲得所要求的輸出。算法常常含有重復(fù)的步驟和一些比較或邏輯判斷。如果一個算法有缺陷,
算法是為一個問題或一類問題給出的解決方法與具體步驟,是對問題求解過程的一種準(zhǔn)確而完整的邏輯描述。程序則是為了用計算機解題或控制某一過程而編排的一系列指令的集合。程序不等于算法。但是,通過程序設(shè)計可以在計算機上實現(xiàn)算法。
1.算法是執(zhí)行時候運行的有窮性,程序只是一段實現(xiàn)算法的代碼 2.算法對于特定的輸入有特定的輸出,程序提供了確定算法結(jié)果的平臺 3.算法需要考慮設(shè)計的可能,程序則具體是實現(xiàn)算法上的設(shè)計 4.算法有輸入,算法的輸入依靠程序的平臺提供 5.同上,
你可能解答過一個有趣的問題——“人、狼、羊過河”問題。有個人帶著三只狼、三只羊,要過河去。有一條小船。船上除了運載一個人外,至多再載狼或羊中的任意兩只。但難點是:當(dāng)人不在場時,如果狼的數(shù)量大于等于羊的數(shù)量,那么羊會被狼吃掉。為了安全過河,你有什么辦法呢?
算法是解決問題的步驟;程序是算法的代碼實現(xiàn) 算法要依靠程序來完成功能;程序需要算法作為靈魂
解決它的算法有多個,其中一個解決方案是這樣的:
算法是解決問題的步驟;程序是算法的代碼實現(xiàn) 算法要依靠程序來完成功能;程序需要算法作為靈魂
開始,運一只狼過河,空船回來;
程序包含算法,算法就是程序的靈魂,一個需要實現(xiàn)特定功能的程序,實現(xiàn)它的算法可以有很多種,所以算法的優(yōu)劣決定著程序的好壞。程序員很熟練的掌握了程序設(shè)計語言的語法,進(jìn)行程序設(shè)計,軟件開發(fā)的時候就是設(shè)計好的算法,加上軟件工程的 理論才
接著,運一只狼和一只羊再過河,到對岸后,再運兩只狼回來;
算法與程序: (1).一個程序不一定滿足有窮性。例操作系統(tǒng),只要整個系統(tǒng)不遭破壞,它將永遠(yuǎn)不會停止,即使沒有作業(yè)需要處理,它仍處于動態(tài)等待中。因此,操作系統(tǒng)不是一個算法。 (2).程序中的指令必須是機器可執(zhí)行的,而算法中的指令則無此
然后,運兩只羊過河,空船回來;
C語言是一門編程語言 而算法是指解題方而完整的描述 區(qū)別的話,舉個例子,有一個算法,他既可以在C語言上實現(xiàn),也可以在B語言,java,c++,python上實現(xiàn)。算法是程序設(shè)計的一部分,而編程語言就是實現(xiàn)算法的工具
最后,分兩次將狼全部運過河;
①程序是你寫完源代碼后,計算機編譯后得到的可執(zhí)行文件。 ②算法一般結(jié)合數(shù)學(xué)思想,以下內(nèi)容算是算法: 給數(shù)組按大小排序、查找數(shù)組某元素、圖形處理算法、音頻識別處理。 但廣義上,用了順序分支循環(huán)就是算法。
由此,過河問題就得以解決了。
算法(Algorithm)是一系列解決問題的清晰指令,也就是說,能夠?qū)σ欢ㄒ?guī)范的輸入,在有限時間內(nèi)獲得所要求的輸出。如果一個算法有缺陷,或不適合于某個問題,執(zhí)行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣
可見,算法是為一個問題或一類問題給出的解決方法與具體步驟,是對問題求解過程的一種準(zhǔn)確而完整的邏輯描述。它由有限步驟的操作序列組成,代表著用系統(tǒng)的方法描述解決問題的策略機制。
算法(Algorithm)是一系列解決問題的清晰指令,也就是說,能夠?qū)σ欢ㄒ?guī)范的輸入,在有限時間內(nèi)獲得所要求的輸出。如果一個算法有缺陷,或不適合于某個問題,執(zhí)行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣
算法是一組嚴(yán)謹(jǐn)定義運算順序的規(guī)則,每一個規(guī)則都是有效的、明確的,此順序必須在有限的次數(shù)下終止。在上面的過河問題中,如果第一步中改為:“運一只狼過河,再運這只狼回來”,那么,說明人沒找到好辦法,在反復(fù)進(jìn)行無用操作。此類算法,是失敗的,永遠(yuǎn)也實現(xiàn)不了既定目標(biāo)。
其實兩者可以說關(guān)聯(lián)不大。 算法就是一個處理的方法,比如大學(xué)里基礎(chǔ)的排序算法,就是為了完成對一組數(shù)據(jù)排序。查找算法,就是為了在一個集合中查找需要的項。除此之外,還有很多算法,比方說,加密、壓縮、圖像處理。 而數(shù)據(jù)結(jié)構(gòu)就是數(shù)據(jù)的結(jié)構(gòu)
算法描述,一般可以使用漢、英等自然語言,比較通俗易懂。也可以使用流程圖、偽代碼表格等其他工具。
算法就是解決該問題的思路,可以用自然語言描述,也可以用偽計算機語言描述,目的是分析出解決該問題的方法. 寫程序就是根據(jù)分析出的算發(fā)編寫出符合該編程語言語法規(guī)范的代碼用來編譯執(zhí)行而得到結(jié)果.
在古代,算法通常用于數(shù)值計算。中國古代的籌算口訣、珠算口訣及其執(zhí)行規(guī)則就是算法的雛形。它所解決的是數(shù)值計算問題?,F(xiàn)代算法,已超出數(shù)值計算范圍。
數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。 算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。 程序是算法的實現(xiàn)語言。
程序則是為了用計算機解題或控制某一過程而編排的一系列指令的集合。這些指令,可以是計算機的機器指令,也可以是匯編語言和高級程序設(shè)計語言。
C程序設(shè)計講述的是C語言的基礎(chǔ)知識,語法,常見用法等知識,會含有少量非常簡單的算法來作為C語言基礎(chǔ)知識講述的例子; 算法分析設(shè)計師一門比較難得課程,通過算法設(shè)計解決現(xiàn)實中的問題,這門課程里面那種語言不重要,重要的是算法設(shè)計的思想,
程序不等于算法。但是,通過程序設(shè)計可以在計算機上實現(xiàn)算法。在實際應(yīng)用中,也許只需一條(組)程序設(shè)計語句,就可以完成算法的基本要素處理,包括數(shù)據(jù)對象的運算和操作,以及順序、選擇、循環(huán)結(jié)構(gòu)的控制。通過程序模塊設(shè)計,可以實現(xiàn)算法中的遞推、遞歸、迭代等一系列基本算法,也包括形式演繹、數(shù)據(jù)結(jié)構(gòu)、數(shù)論圖論、加密解密、科學(xué)決策等復(fù)雜算法。
算法是解決問題的步驟;程序是算法的代碼實現(xiàn) 算法可以有流程圖,自然語言,偽代碼來表示 程序是機器實際可執(zhí)行的
因此,運用計算機解決問題的過程,通??梢苑殖扇齻€階段:分析問題、設(shè)計算法和編制程序?qū)崿F(xiàn)算法。由于計算機運算速度快,存儲數(shù)據(jù)量大,大大提高了算法實現(xiàn)效率。
算法是指邏輯層面上解決問題方法的一種描述,一個算法可以被很多不同的程序?qū)崿F(xiàn). 算法并不是程序或者函數(shù)本身。 一般來說,算法可以被計算機模擬出來,就是說可以被我們寫程序?qū)懗鰜?。程序只是一個手段,讓計算機去機械式地執(zhí)行,算法才是靈魂,
擴展閱讀,以下內(nèi)容您可能還感興趣。
何謂算法?它與程序有何區(qū)別?
算法(Algorithm)是一系列解決問題的清晰指令,也就是說,能夠?qū)σ欢ㄒ?guī)范的輸入,在有限時間內(nèi)獲得所要求的輸出。如果一個算法有缺陷,或不適合于某個問題,執(zhí)行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務(wù)。一個算法的優(yōu)劣可以用空間復(fù)雜度與時間復(fù)雜度來衡量。
算法可以理解為有基本運算及規(guī)定的運算順序所構(gòu)成的完整的解題步驟?;蛘呖闯砂凑找笤O(shè)計好的有限的確切的計算序列,并且這樣的步驟和序列可以解決一類問題。同一問題可用不同算法解決,而一個算法的質(zhì)量優(yōu)劣將影響到算法乃至程序的效率。算法分析的目的在于選擇合適算法和改進(jìn)算法。一個算法的評價主要從時間復(fù)雜度和空間復(fù)雜度來考慮。
時間復(fù)雜度
算法的時間復(fù)雜度是指算法需要消耗的時間資源。一般來說,計算機算法是問題規(guī)模n 的函數(shù)f(n),算法的時間復(fù)雜度也因此記做
T(n)=Ο(f(n))
因此,問題的規(guī)模n 越大,算法執(zhí)行的時間的增長率與f(n) 的增長率正相關(guān),稱作漸進(jìn)時間復(fù)雜度(Asymptotic Time Complexity)。
空間復(fù)雜度
算法的空間復(fù)雜度是指算法需要消耗的空間資源。其計算和表示方法與時間復(fù)雜度類似,一般都用復(fù)雜度的漸近性來表示。同時間復(fù)雜度相比,空間復(fù)雜度的分析要簡單得多。
詳見百度百科詞條"算法復(fù)雜度" [編輯本段]算法設(shè)計與分析的基本方法 1.遞推法
遞推法是利用問題本身所具有的一種遞推關(guān)系求問題解的一種方法。它把問題分成若干步,找出相鄰幾步的關(guān)系,從而達(dá)到目的,此方法稱為遞推法。
2.遞歸
遞歸指的是一個過程:函數(shù)不斷引用自身,直到引用的對象已知
3.窮舉搜索法
窮舉搜索法是對可能是解的眾多候選解按某種順序進(jìn)行逐一枚舉和檢驗,并從眾找出那些符合要求的候選解作為問題的解。
4.貪婪法
貪婪法是一種不追求最優(yōu)解,只希望得到較為滿意解的方法。貪婪法一般可以快速得到滿意的解,因為它省去了為找最優(yōu)解要窮盡所有可能而必須耗費的大量時間。貪婪法常以當(dāng)前情況為基礎(chǔ)作最優(yōu)選擇,而不考慮各種可能的整體情況,所以貪婪法不要回溯。
5.分治法
把一個復(fù)雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題……直到最后子問題可以簡單的直接求解,原問題的解即子問題的解的合并。
6.動態(tài)規(guī)劃法
動態(tài)規(guī)劃是一種在數(shù)學(xué)和計算機科學(xué)中使用的,用于求解包含重疊子問題的最優(yōu)化問題的方法。其基本思想是,將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解。動態(tài)規(guī)劃的思想是多種算法的基礎(chǔ),被廣泛應(yīng)用于計算機科學(xué)和工程領(lǐng)域。
7.迭代法
迭代是數(shù)值分析中通過從一個初始估計出發(fā)尋找一系列近似解來解決問題(一般是解方程或者方程組)的過程,為實現(xiàn)這一過程所使用的方法統(tǒng)稱為迭代法。 [編輯本段]算法分類 算法可大致分為基本算法、數(shù)據(jù)結(jié)構(gòu)的算法、數(shù)論與代數(shù)算法、計算幾何的算法、圖論的算法、動態(tài)規(guī)劃以及數(shù)值分析、加密算法、排序算法、檢索算法、隨機化算法、并行算法。
算法可以宏泛的分為三類:
有限的,確定性算法 這類算法在有限的一段時間內(nèi)終止。他們可能要花很長時間來執(zhí)行指定的任務(wù),但仍將在一定的時間內(nèi)終止。這類算法得出的結(jié)果常取決于輸入值。
有限的,非確定算法 這類算法在有限的時間內(nèi)終止。然而,對于一個(或一些)給定的數(shù)值,算法的結(jié)果并不是唯一的或確定的。
無限的算法 是那些由于沒有定義終止定義條件,或定義的條件無法由輸入的數(shù)據(jù)滿足而不終止運行的算法。通常,無限算法的產(chǎn)生是由于未能確定的定義終止條件。
一個算法應(yīng)該具有以下五個重要的特征:
1、有窮性: 一個算法必須保證執(zhí)行有限步之后結(jié)束;
2、確切性: 算法的每一步驟必須有確切的定義;
3、輸入:一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定除了初始條件;
4、輸出:一個算法有一個或多個輸出,以反映對輸入數(shù)據(jù)加工后的結(jié)果。沒有輸出的算法是毫無意義的;
5、可行性: 算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算后即可完成。
計算機科學(xué)家尼克勞斯-沃思曾著過一本著名的書《數(shù)據(jù)結(jié)構(gòu)十算法= 程序》,可見算法在計算機科學(xué)界與計算機應(yīng)用界的地位。程序(港臺稱之為程式) program(me)或procedure
chénɡ xù
概念1.:為進(jìn)行某活動或過程所規(guī)定的途徑。
概念2.程序是由序列組成的,告訴計算機如何完成一個具體的任務(wù)。由于現(xiàn)在的計算機還不能理解人類的自然語言,所以還不能用自然語言編寫計算機程序。
指示計算機按解決問題的步驟
實現(xiàn)預(yù)期目的而進(jìn)行操作的一系列語句和指令。一般分為系統(tǒng)程序和應(yīng)用程序兩大類。 計算機中的程序在港澳臺地區(qū)稱為程式。程序就是為使電子計算機執(zhí)行一個或多個操作,或執(zhí)行某一任務(wù),按序設(shè)計的計算機指令的集合。由程序計數(shù)器(Program Counter)控制。程序(program)是為實現(xiàn)特定目標(biāo)或解決特定問題而用計算機語言編寫的命令序列的集合。是用匯編語言、高級語言等開發(fā)編制出來的可以運行的文件,在計算機中稱可執(zhí)行文件(后綴名一般為.exe)。我們玩的游戲一般都是應(yīng)用程序(但現(xiàn)在后綴名為.swf的Flash影片類的游戲也比較流行)
為了一個程序運行,計算機加載程序代碼,可能還要加載數(shù)據(jù),從而初始化成一個開始狀態(tài),然后調(diào)用某種啟動機制。在最低層上,這些是由一個引導(dǎo)序列開始的。
在大多數(shù)計算機中,操作系統(tǒng)例如視窗等,加載并且執(zhí)行很多程序。在這種情況下,一個計算機程序是指一個單獨的可執(zhí)行的映射,而不是當(dāng)前在這個計算機上運行的全部程序。
數(shù)據(jù)結(jié)構(gòu)簡述算法和程序的區(qū)別課后題
其實兩者可以說關(guān)聯(lián)不大。
算法就是一個處理的方法,比如大學(xué)里基礎(chǔ)的排序算法,就是為了完成對一組數(shù)據(jù)排序。查找算法,就是為了在一個集合中查找需要的項。除此之外,還有很多算法,比方說,加密、壓縮、圖像處理。
而數(shù)據(jù)結(jié)構(gòu)就是數(shù)據(jù)的結(jié)構(gòu)。比方說隊列、堆、棧、鏈表、樹等。
大學(xué)里的《算法與數(shù)據(jù)結(jié)構(gòu)》這門課是個入門的算法課和數(shù)據(jù)結(jié)構(gòu)課程。教授針對不同的數(shù)據(jù)結(jié)構(gòu)進(jìn)行的排序、查找、遍歷的不同算法。僅是算法基礎(chǔ),就像大學(xué)里都是以C語言作為入門語言一樣的。本回答被提問者采納
寫算法和寫程序有什么區(qū)別啊 請你們指教
算法就是解決該問題的思路,可以用自然語言描述,也可以用偽計算機語言描述,目的是分析出解決該問題的方法.
寫程序就是根據(jù)分析出的算發(fā)編寫出符合該編程語言語法規(guī)范的代碼用來編譯執(zhí)行而得到結(jié)果.
算法和計算機程序之間有區(qū)別嗎
有。。。
算法是計算
程序也有計算,但是還有別的東西,比如說數(shù)值傳遞
什么是數(shù)據(jù)結(jié)構(gòu)?什么是算法?算法與程序有什么關(guān)系?
數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。
程序是算法的實現(xiàn)語言。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com