演算法導論筆記 01演算法概述

2021-07-01 22:05:56 字數 713 閱讀 6078

1:對於有些問題,目前還不知道是否存在有效的演算法,這些問題的乙個子集是np完全問題,對於np完全問題:a是否存在有效演算法是未知的;b如果任何乙個np問題存在有效演算法,那麼所有的np完全問題都存在有效演算法;c有些np完全問題類似於一些已經有有效演算法的問題。

2:如果兩個演算法,比如插入排序和歸併排序,插入排序的時間為

n變得足夠大,歸併排序就比插入排序要快,不管

比小多少,總會存在乙個交叉點,超出這個點,歸併排序更快。具體的例子:

我們讓執行插入排序的一台較快的計算機(計算機a)與執行歸併排序的一台較慢的計算機(計算機b)競爭。每台計算機必須排序乙個具有1000萬個數的陣列。假設計算機a每秒執行百億條指令,而計算機b每秒僅執行1000萬條指令,結果計算機

a就純計算能力來說比計算機b快

1000

倍。為使差別更具戲劇性,假設世上最巧妙的程式設計師為計算機a用機器語言編碼插入排序,並且為了排序n個數,結果**需要

條指令。進一步假設僅由一位水平一般的程式設計師使用某種帶有乙個低效編譯器的高階語言來實現歸併排序,結果**需要50nlgn條指令。為了排序1000萬個數,計算機a需要

而計算機b需要

演算法導論01 習題(1)

1.1 1 給出現實生活中需要排序的乙個例子或者現實生活中需要計算凸殼的乙個例子 答 排序比較多,比如商場產品單價 銷量 總價的排序 全校學生的成績登入系統需要排序,還有一些需要按一定屬性排序的情況等。凸殼則比較複雜,給定平面上的n個點,凸殼則是包含這些點的最小的凸多邊形 比如在大海中打撈飛機的話需...

演算法導論 比較排序演算法筆記

好幾天沒看 演算法導論 今天看了一天的排序演算法,印象第一的是基數演算法,因為居然違反我的乙個常識,它採用的是最低有效位進行排序的。插入排序 歸併排序 堆排序 快速排序,這些都是比較排序演算法 它們都是通過對元素進行比較操作來確定輸入陣列的有序次序,這些演算法可以用決策樹模型分析,可以證明任意比較排...

《演算法導論》筆記彙總

列表裡沒有的,或者是純屬理論,不適合寫,比如第1 5章 或者是我也不怎麼明白的,比如斐波那契堆中抽取最小結點的平攤代價分析 還有沒看的,比如數論和np完全性等。陸續看了四個月,有些理解的還不是很深,筆記彙總到這裡。如果有問題,可以郵件交流。第六章 堆排序 堆排序 第七章 快速排序 四種快速排序 快速...