① 演算法與程序有何區別
01 演算法是為一個問題或一類問題給出的解決方法與具體步驟,是對問題求解過程的一種准確而完整的邏輯描述。程序則是為了用計算機解題或控制某一過程而編排的一系列指令的集合。程序不等於演算法。但是,通過程序設計可以在計算機上實現演算法。
你可能解答過一個有趣的問題——“人、狼、羊過河”問題。有個人帶著三隻狼、三隻羊,要過河去。有一條小船。船上除了運載一個人外,至多再載狼或羊中的任意兩只。但難點是:當人不在場時,如果狼的數量大於等於羊的數量,那麼羊會被狼吃掉。為了安全過河,你有什麼辦法呢?
解決它的演算法有多個,其中一個解決方案是這樣的:
開始,運一隻狼過河,空船回來;
接著,運一隻狼和一隻羊再過河,到對岸後,再運兩只狼回來;
然後,運兩只羊過河,空船回來;
最後,分兩次將狼全部運過河;
由此,過河問題就得以解決了。
可見,演算法是為一個問題或一類問題給出的解決方法與具體步驟,是對問題求解過程的一種准確而完整的邏輯描述。它由有限步驟的操作序列組成,代表著用系統的方法描述解決問題的策略機制。
演算法是一組嚴謹定義運算順序的規則,每一個規則都是有效的、明確的,此順序必須在有限的次數下終止。在上面的過河問題中,如果第一步中改為:“運一隻狼過河,再運這只狼回來”,那麼,說明人沒找到好辦法,在反復進行無用操作。此類演算法,是失敗的,永遠也實現不了既定目標。
演算法描述,一般可以使用漢、英等自然語言,比較通俗易懂。也可以使用流程圖、偽代碼表格等其他工具。
在古代,演算法通常用於數值計算。中國古代的籌算口訣、珠算口訣及其執行規則就是演算法的雛形。它所解決的是數值計算問題。現代演算法,已超出數值計算范圍。
程序則是為了用計算機解題或控制某一過程而編排的一系列指令的集合。這些指令,可以是計算機的機器指令,也可以是匯編語言和高級程序設計語言。
程序不等於演算法。但是,通過程序設計可以在計算機上實現演算法。在實際應用中,也許只需一條(組)程序設計語句,就可以完成演算法的基本要素處理,包括數據對象的運算和操作,以及順序、選擇、循環結構的控制。通過程序模塊設計,可以實現演算法中的遞推、遞歸、迭代等一系列基本演算法,也包括形式演繹、數據結構、數論圖論、加密解密、科學決策等復雜演算法。
因此,運用計算機解決問題的過程,通常可以分成三個階段:分析問題、設計演算法和編製程序實現演算法。由於計算機運算速度快,存儲數據量大,大大提高了演算法實現效率。
② 編寫程序很難嗎
很難,尤其是對中國人
精通一門編程語言需要10-20年,而很多的編程語言本身設計的局限性比較大,或者過於復雜,導致學編程的人根本沒法完全的掌握。
編程的難點,
1 英文字母,這個很致命,因為我們看中文是從小看,可以做到一目十行,但是看英文,我們的閱讀水平明顯下降。這樣很影響我們對於代碼的理解和編程速度。
2 標點符號的過分使用,英語對於標點的熱愛遠超中文,導致我們在編程中不得不頻繁的切換。
3 思維邏輯的西方化,編程語言都是西方人設計的,所以思維邏輯上符合西方人的理解方式
中國人的思維邏輯和他們完全不同
4 編程語言普遍太老,目前的最流行的幾十種編程語言的出生時間,最年輕的GO(谷歌的)也有10年了,設計思想,語言習慣等等,都有明顯的時代特徵,很多的設計理念,思想,語法結構都顯得多餘。
綜上,編程語言本身的問題太多,導致了中國人學習起來困難。
③ 編程C/C++與數據結構哪個更難,C/C++與演算法哪個更難
幫你理一理:
1. C/C++是編程語言。
2. 數據結構是計算機存儲、組織數據的方式。
3. 演算法是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。
三者是遞進關系,語言和數據結構是基礎,從編程的角度說,演算法就是利用編程語言組織的數據結構,加上處理邏輯,來解決現實中的各種問題,所以並沒有可比性。從學習的角度講,肯定是月到後面越難的。
祝學習順利!
④ 演算法與程序設計和數據管理技術哪個難一些
本人.NET程序員.感覺演算法和數據管理要難一些,也比較有學頭.我們最早學的是老嚴(嚴蔚敏)的數據結構,這本書非常好,建議樓主要走這條道的時候好好研讀一下,對寫程序有很大的幫助.
⑤ 演算法設計與編程哪個更難
演算法設計一般比較難 編程主要是你日積月累的習慣
演算法需要根據實際的情況進行 設計
⑥ 會考信息技術考試,網路技術和演算法和程序那個更簡單些。
因為同一個學校內學的都是一種的
老師就那麼抄幾個
要教那麼多教不過來的
不同學校學的不同
不過
演算法程序筆試相對較難
有編程那些的
不過上機要簡單
網路技術相反
當然
前提是你會、
主要還是看你那種會的更多些
分數能考的更高些
⑦ 演算法程序難么
演算法是程序的一部分,演算法是所有程序的精髓,這個說真的是挺難的!
⑧ 學編程,什麼叫演算法 為什麼很多人說演算法很難
其實說白了,演算法就是解決某種問題的方式,但也分好的演算法和差的演算法,而學習書本上的知識目的就是為了提升自己的思維方式,借鑒更多好的演算法,因為好的演算法可以提升程序的性能,提高開發效率,就拿最簡單的例子,玩猜數字游戲,1-100裡面隨便選一個數字,然後讓你去猜它是多少,別人會告訴你這個數字大了還是小了,最直接的方式就是從1一直猜到100,但是也有更簡便的方式:就是類似二分法的方式從50開始猜,如果大了就猜1-50中的25,如果小了猜50-100中的75,以此類推,第一種從1-100猜數字是演算法,第二種二分法的方式也是演算法,只是第二種更好.........還有從1加到100,直接方式1+2+3....一個一個的加,另一種方式(1+100)*50,這個就是著名的高斯演算法。
⑨ 請問軟考軟體設計師考試最難的是程序語言課,數據結構課,演算法課這三課嗎
程序語言最難
⑩ 演算法設計和編碼之間的區別是什麼哪種更難
演算法設計更難,編碼只是根據演算法的偽代碼去實現演算法。需要一些寫代碼的功底。
演算法設計更注重的是想法。基本上演算法設計出來了,寫程序就不難了。
演算法設計的工資比編碼的工資高得多,一個高中生就能編碼了。
在印度,程序員基本上是高中生。而中國的計算機本科生出來基本上做了程序員。