1. 演算法與運算

更新於 發佈於 閱讀時間約 1 分鐘

Lecture 1: Algorithms and Computation

課程目的

  • 解決電腦上遇到的問題
  • 證明正確性
  • 探討效率

並且很著重溝通,說服別人你做的事是正確且有效率的。

何謂電腦問題

你有輸入,需要輸出。

A輸入的正確解答是BCD輸出,解決這個問題的方法就是電腦問題。

演算法

給一個輸入,軟體或方法給一個「正確」輸出,就是演算法。

範例:學生生日相同與否演算法

方法一

記錄所有學生的生日,每次紀錄新資料時,比對已記錄資料,若有相同生日,回傳「是」。

時間複雜度:O(n)

空間複雜度:O(n)

正確性

歸納法證明

若前K名學生有人的生日一樣,在問第K+1名學生之前回傳「是」。

若K=0,則回傳「否」。

則K=K'時,會出現兩種情況:

  1. K’已回傳「是」,有相同解。
  2. K’沒有相同解,比較K’+1。

效率

衡量效率時需要顧慮電腦性能與輸入資料規模,所以不比較時間,而比較輸出答案所需的執行次數。

為此會需要用到「漸近分析」,會在之後被討論到。

預期演算法會隨著輸入大小改變輸出所需時間。

漸近符號(asymptotic notation)

大 O 符號(Big O notation):最高上限

大 Ω 符號(Big Omega notation):最低下限

大 θ 符號(Big Theta notation):上下限之間的區間

raw-image



計算模型

Word RAM

「Word」代表的是CPU可以處裡的資料量,RAM就是記憶體(Random access memory)。

現在的作業系統大多是64bits,以前是32bits。

32bits最多只能有2^32bytes的儲存空間,大約4GB。

64bits可以有2^64bytes,大約20EB,短時間內用不完就對了。

CPU

可以進行數字運算、邏輯判斷、Bitwise Operation

資料結構

前八堂課會討論資料結構,會討論儲存大資料的方法與怎麼讓CPU可以操作這些資料。

留言
avatar-img
留言分享你的想法!
avatar-img
程式貓咪
2會員
2內容數
這是MIT演算法概論的筆記
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
中學數學基礎練習—一元一次方程式
Thumbnail
中學數學基礎練習—一元一次方程式
Thumbnail
中學數學基礎練習—一元一次方程式
Thumbnail
中學數學基礎練習—一元一次方程式
Thumbnail
中學數學基礎練習—一元一次方程式
Thumbnail
中學數學基礎練習—一元一次方程式
Thumbnail
中學數學基礎練習—一元一次方程式
Thumbnail
中學數學基礎練習—一元一次方程式
Thumbnail
高中數學主題練習—對數方程式
Thumbnail
高中數學主題練習—對數方程式
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News