有演算法
1. 程序中一定會有演算法么
不一定,演算法和程序還是有區別的,演算法一般是針對某個數學問題。簡單的常見演算法主要有查找、排序。復雜一些的演算法比如有加密、搜索引擎、3D渲染等等。
程序和演算法最顯著的區別是,演算法一定可以在有限的時間內結束,而程序則不必。比如QQ,你只要不關閉它,就可以讓它一直運行下去,這就是程序。而搜索引擎,你點一下搜索,它會很快給出搜索的結果,這就是演算法。
至於Hello World嘛……太簡單了,無所謂演算法……
補充回答:
演算法存在的意義是解決某個特定問題的,否則就沒有意義了。只要你的這種組合符合演算法的定義和特徵的,那麼沒有爭議,就是演算法。Google的搜索引擎演算法不知道有多復雜,據說有上萬個參數,但那也是演算法。
其實樓主大可不必糾結於概念,大師們之所以把「演算法」這個概念抽象出來,是為了更好的解決一些常見的計算問題,當然由此也衍生出了演算法復雜度等一系列概念。只要能夠更好的解決問題,概念是次要的,結果才是主要的。
2. 澶ф暟鎹鏈夊摢浜涚畻娉
澶ф暟鎹鐨勭畻娉曞寘鎷錛
涓銆佹暟鎹鎸栨帢綆楁硶
1. 鍒嗙被綆楁硶
鍒嗙被綆楁硶鏄澶ф暟鎹涓甯哥敤鐨勬暟鎹鎸栨帢綆楁硶涔嬩竴錛岀敤浜庨勬祴鏁版嵁鎵灞炵殑綾誨埆銆傚父瑙佺殑鍒嗙被綆楁硶鍖呮嫭鍐崇瓥鏍戝垎綾匯佹湸緔犺礉鍙舵柉鍒嗙被銆佹敮鎸佸悜閲忔満絳夈傝繖浜涚畻娉曢氳繃瀵瑰凡鐭ユ暟鎹闆嗙殑鐗瑰緛榪涜屽垎鏋愶紝寤虹珛鍒嗙被妯″瀷錛屼粠鑰屽規湭鐭ユ暟鎹榪涜岄勬祴鍜屽垎綾匯
2. 鑱氱被綆楁硶
鑱氱被綆楁硶鏄灝嗗ぇ鏁版嵁闆嗕腑鐨勬暟鎹鍒掑垎涓轟笉鍚岀殑緹ょ粍鎴栫皣錛屼嬌寰楀悓涓綈囦腑鐨勬暟鎹鐩鎬技搴﹁緝楂橈紝涓嶅悓綈囦箣闂寸殑鏁版嵁鐩鎬技搴﹁緝浣庛傚父瑙佺殑鑱氱被綆楁硶鍖呮嫭K鍧囧艱仛綾匯佸眰嬈¤仛綾葷瓑銆傝繖浜涚畻娉曞箍娉涘簲鐢ㄤ簬甯傚満緇嗗垎銆佺ぞ浜ょ綉緇滃垎鏋愮瓑棰嗗煙銆
浜屻佹満鍣ㄥ︿範綆楁硶
1. 鍥炲綊綆楁硶
鍥炲綊綆楁硶鐢ㄤ簬棰勬祴鏁板煎瀷鏁版嵁銆傚畠閫氳繃鍒嗘瀽杈撳叆涓庤緭鍑哄彉閲忎箣闂寸殑鍏崇郴錛屽緩絝嬫暟瀛︽ā鍨嬶紝鐒跺悗鍒╃敤榪欎釜妯″瀷榪涜岄勬祴銆傚湪澶ф暟鎹鍒嗘瀽涓錛屽洖褰掔畻娉曡騫挎硾搴旂敤浜庨勬祴鍒嗘瀽銆佸競鍦洪勬祴絳夐嗗煙銆
2. 娣卞害瀛︿範綆楁硶
娣卞害瀛︿範綆楁硶鏄鏈哄櫒瀛︿範鐨勪竴涓鍒嗘敮錛岄氳繃妯℃嫙浜鴻剳紲炵粡緗戠粶鐨勭粨鏋勶紝寤虹珛澶氬眰紲炵粡緗戠粶妯″瀷錛岃嚜鍔ㄦ彁鍙栨暟鎹鐨勭壒寰佸苟榪涜屽垎綾繪垨棰勬祴銆傚湪澶ф暟鎹澶勭悊涓錛屾繁搴﹀︿範綆楁硶琚騫挎硾搴旂敤浜庡浘鍍忚瘑鍒銆佽闊寵瘑鍒銆佽嚜鐒惰璦澶勭悊絳夐嗗煙銆
涓夈佹帹鑽愮郴緇熺畻娉
鎺ㄨ崘緋葷粺綆楁硶鏄鐢ㄤ簬鍦ㄥぇ鏁版嵁涓鎵懼嚭鐢ㄦ埛鍙鑳芥劅鍏磋叮鐨勭墿鍝佹垨鍐呭癸紝騫舵帹鑽愮粰鐢ㄦ埛鐨勭畻娉曘傚父瑙佺殑鎺ㄨ崘緋葷粺綆楁硶鍖呮嫭鍗忓悓榪囨護銆佸熀浜庡唴瀹圭殑鎺ㄨ崘絳夈傝繖浜涚畻娉曢氳繃鍒嗘瀽鐢ㄦ埛鐨勮屼負鏁版嵁銆佸叴瓚e嚲濂界瓑淇℃伅錛屼負鐢ㄦ埛鎻愪緵涓鎬у寲鐨勬帹鑽愭湇鍔°
浠ヤ笂鏄澶ф暟鎹涓甯哥敤鐨勫嚑縐嶇畻娉曪紝瀹冧滑鍦ㄤ笉鍚岀殑棰嗗煙鍜屽満鏅涓鍙戞尌鐫閲嶈佷綔鐢錛屽府鍔╀漢浠鏇存湁鏁堝湴澶勭悊鍜屽垎鏋愬ぇ鏁版嵁銆
3. 什麼叫演算法演算法有哪幾種表示方法
演算法(Algorithm)是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。計算機科學家往往將「演算法」一詞的含義限定為此類「符號演算法」。「演算法」概念的初步定義:一個演算法是解決一個問題的進程。而並不需要每次都發明一個解決方案。
已知的演算法有很多,例如「分治法」、「枚舉測試法」、「貪心演算法」、「隨機演算法」等。
(3)有演算法擴展閱讀
演算法中的「分治法」
「分治法」是把一個復雜的問題拆分成兩個較為簡單的子問題,進而兩個子問題又可以分別拆分成另外兩個更簡單的子問題,以此類推。問題不斷被層層拆解。然後,子問題的解被逐層整合,構成了原問題的解。
高德納曾用過一個郵局分發信件的例子對「分治法」進行了解釋:信件根據不同城市區域被分進不同的袋子里;每個郵遞員負責投遞一個區域的信件,對應每棟樓,將自己負責的信件分裝進更小的袋子;每個大樓管理員再將小袋子里的信件分發給對應的公寓。