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