




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
什麼是演算法?,演算法就是為了解決各種數學問題,而用的方法,只是解決某一個問題的方法很多種所以我們比較看誰的時間複雜度低。 演算法代表一系列為達成某種目標而進行的工作,通常演算法裡的工作都是針對資料所做的某種處理。,什麼是演算法?,面對問題時會研擬出解決問題的步驟,在電腦領域中對於解決問題的方法稱為演算法。 一組可以用來解決特定問題的有限指令或步驟 ,依循這些指令或步驟可以解決問題。 演算法是達成一項特定工作的程序。,什麼是演算法?,“computer”,問題problem,演算法algorithm,輸入input,輸出output,至少一個,多個或是沒有,明確 有限 可實現 有效率,學習演算法的問題,專有名詞不了解 遇到這種情形, 請翻開教科書找到這些專有名詞的地方, 把它 K 懂並背下來, 這是你這門科目要繼續往下走的先決條件。 所使用的邏輯看不懂 名詞看得懂, 邏輯也了解, 但不會用程式解問題,學習演算法的問題,專有名詞不懂 所使用的邏輯看不懂 請你先用人腦的方式去想像, 程式這樣做, 相當於人在解決這個問題時的什麼動作, 電腦因為速度快, 有時候會用一些看似愚蠢, 但是完全沒有例外的方法做事, 這就是演算法的精神-充分利用電腦的長處, 它可以用比你笨一千倍的方法做得比你好, 因為它比你快十億倍。 名詞看得懂, 邏輯也了解, 但不會用程式解問題,學習演算法的問題,專有名詞不懂 所使用的邏輯看不懂 名詞看得懂, 邏輯也了解, 但不會用程式解問題 這個就比較麻煩了, 如果真心想學好程式設計 (“程式設計 = 資料結構 + 演算法” ), 那就要多練習題目了。資料結構是演算法的基礎, 程式寫不出來, 大多數和想不出能讓演算法變單純的資料結構有關, 請回過頭多磨練資料結構的知識吧。,演算法的特性,1. 完整性 :演算法中的每個程序都要能清楚地定義出來,不能有模糊不清的情況,只有要求每個程序都明確可行,整個演算法才是完整的。 2. 明確性 :演算法中的程序代表的涵義須明確,任何人來解讀都能得到一致的結果。 3. 可決定性 (Deterministic):在明確而定義清楚的程序被執行後,演算法所達到的結果應該是可預期的,無法具備這種特性的程序的組合,並不能算是演算法。 4. 有限的 (Finite):演算法必須要能在有限的步驟內完成或終止,而且所使用的資料量也是有限的。,所以我們可以把它們看成是演算法的基本定義,滿足這些條件才算是演算法,演算法的其他特性,1. 健全的結構:演算法最好具有易懂易用的特性,讓別人能很快地熟悉其用法,所以一般都會要求演算法有良好的結構,組成的元件有容易替代與再用的特性。 2. 一般通用性(Generality):演算法最好能用來解決很多種問題,而不是只用在罕見的特例,既然花了功夫深入去描述一種演算法,自然會要求演算法具有多種用途。 3. 效率(Efficiency):演算法使用時所耗用的系統資源狀況,以及執行的效率,對於使用者而言,是非常重要的問題。因為有時候不但要求解答,還得在有限時間之內完成。,演算法的表達,演算法的表達方式,我們可以把它看成是一種溝通的方法,到目前為止,並沒有那一種表示法是公認的標準,事實上也無此必要,一般人在描述演算法時必須講求精準明確,但不必遵循嚴謹的語法,不過,一旦要把演算法交付給電腦來執行時,當然就得十分地講究,因為電腦的邏輯與算術運算是完全依照所給的指令來進行的。,演算法表示,最簡單的表示法應該算是口語,或者說白話的講法,例如我們在判定某一年份是不是閏年時,會先看看能否被4整除,若是能被4整除但不能被100整除,可算是閏年,若是能被4整除,又能被100整除,但不能被400整除,則不能算閏年。像這一類的描述就很類似演算法,只是口語的表達方式有時候太繁複了,所以我們下面要介紹一些比較方便的表示法。,演算法表示方法,一、 代數的表示法 二、表格式的表示法 例如申報所得稅時所用的累進稅表,從表格中的資訊可計算出應該繳的所得稅。 三、資料流程圖 四、控制流程圖 五、類程式碼,閏年的判定問題,閏年和一般年份最大的差異在於閏年的二月份有29天,一般年的二月只有28天;能被400整除的年份一定是閏年。能被100整除但不能被400整除的,不是閏年。能被4整除但不能被100整除的年份是閏年。不能被4整除的年份不是閏年。,演算法表示方法,三、資料流程圖,演算法表示方法,四、控制流程圖,閏年的判定問題,閏年的判定問題,把閏年判定的問題同時分配給幾個人來求解,所得到的答案不見得和上圖一樣,同樣的問題可能有多種可行的演算法,這些演算法的效率和使用的資源各不相同 。,類程式碼(Pseudocode),它是一種很接近程式語言的演算法敘述,假如能把一個問題的解決方式用類程式碼來表達,就可以很容易的轉換成電腦能處理的指令 。 類程式碼和一般的程式語言不同,比較不遵循嚴謹的語法,但是在表達與溝通上相當地方便。,類程式碼(Pseudocode),結合數學式子,敘述與程式控制結構語法 可以採用任何語言為基礎 以能明確表達出演算法為主(流程與運算),對於宣告,輸入與輸出等不會要求像程式一樣明確定義,演算法結構,演算法中的操作在組合之後,顯示出來的架構;因為某些操作可能代表一個完整的功能,而演算法的整體功能就是這些個別功能的組合。,演算法設計,從問題的需求面開始,確定演算法應該提供的主要功能,然後看看這個功能可由那些次功能來完成,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三基三严课件
- 2025-2030中国寺庙经济市场经营管理风险及未来前景展望报告
- 三十项重点要求课件
- 三农科普农业知识培训内容课件
- 禁摩公务员面试题精 编
- 高级文秘面试题目及答案参考
- 金泉小学面试指南相关面试题目详解
- 产品认证面试问题及答案:新面试真题解析
- 大班保育个人总结
- 大学生贫困申请书模板格式
- 广西2025年公需科目学习考试试题及答案4
- 代加工板材合同协议书范本
- 2025-2026学年新七年级上学期开学摸底考试语文试卷(广东专用)
- 早期诊断技术优化-第1篇-洞察及研究
- 2025 慢阻肺合并肺心病诊疗查房课件
- 2025二手房个人购房合同范本
- 2025年c语言大考试题及答案
- 2025年病历书写竞赛题库
- 2025年辅导员技能大赛试题题库(含答案)
- 2025版一次性社保补偿协议示范文本及争议裁决机制
- (标准)专利合同转让协议书范本
评论
0/150
提交评论