1.1-1給出現實生活中需要排序的乙個例子或者現實生活中需要計算凸殼的乙個例子。
答:一次數學考試之後按成績高低進行排名。
1.1-2 除速度外,在真實環境中還可能使用哪些其他有關效率的量度?
答 :演算法的精度、占用的記憶體大小、魯棒性、問題的解決程度。
1.1-3 選擇一種你以前已知的資料結構,並討論其優勢和侷限。
答:棧的優點就是讀取速度快,而且資料可以共享;缺點就是存在於棧中的資料大小及週期必須是確定的,缺乏靈活性。
1.1-4 前面給出的最短路徑與旅行商問題有哪些相似之處?又有哪些不同?
答:相似之處:都是尋求最短的路線。
不同之處:最短路徑問題是從若干條可選線路中選擇一條線路使之在兩個點之間達到 。
1.1-5 提供乙個現實生活的問題,其中只有最佳解才行。然後提供乙個問題,其中近似最佳的乙個解也足夠好。
答:最佳解可以理解成最優解,比如乙個二元一次方程的最小值是多少。近似最佳可以理解成在乙個範圍之內就可以。
比如機器學習或者神經網路,許多時候只需找到近似最優解或者區域性最優解就行。
1.2-1 給出在應用層需要演算法內容的應用的乙個例子,並討論涉及的演算法的功能。
答:手寫數字識別用到了k鄰近演算法,即是給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的k個例項, 這k個例項的多數屬於某個類,就把該輸入例項分類到這個類中。
1.2-2 假設我們正比較插入排序與歸併排序在相同機器上的實現,對規模為n的輸入,插入排序執行8n^2步,而歸併排序執行64nlgn步,問對哪些n值,插入排序優於歸併排序?
答:在演算法導論中lgn=log2n。
經計算,8n^2=64nlgn,在2<=n<=43的時候,插入排序比遞迴排序要快。
1.2-3 n的最小值為何值時,執行時間為100n^2的乙個演算法在相同機器上快於執行時間為2^n的另乙個演算法?
答:當n=14時,代入100n^2=19600,代入2^n=16384,19600>16384。當n=15時,代入100n^2=22500,代入2^n=32768,22500<32768。所以n的最小值為15。
演算法導論第一章
第一章 演算法在計算中的作用 1.1演算法 非形式地說,演算法就是任何良定義的計算過程,該過程取某個值或值的集合作為輸入並產生某個值或值的集合作為輸出。這樣,演算法就是把輸入轉換成輸出的計算步驟的乙個序列。若對每個輸入例項演算法都以正確的輸出停機,則稱該演算法是正確的,並稱正確的演算法解決了給定的計...
演算法導論課第一章後題
練習 1.1 1 排序例子 成績排名。凸殼例子 給物品製作包裝盒,即為取物品的乙個凸殼。1.1 2 產品的良品率 1.1 3 集合,優點是元素無重複,可以快速擴容,缺點是元素無序不易查詢 1.1 4 相似 都是交通圖問題,都是求總共走的路程最短。不同 旅行商問題任兩點可以連線 只要不重複 而最短路徑...
第一章 導論
c 是物件導向的高階語言,將客觀事物都看作物件,將同類物件進行抽象,形成類,類封裝起來只暴露介面,符合人類的思維方式。用源語言寫的,有待翻譯的程式 源程式通過翻譯程式加工以後生成的機器語言程式 連線目標程式以及庫中的某些檔案,生成乙個可執行檔案 加一位,0表示正,1表示負,符號絕對值表示的編碼,但是...