《演算法導論》第一章 讀書筆記

2021-07-15 21:59:48 字數 883 閱讀 1193

為什麼需要了解np完全問題?

如果能證明該問題是np完全,就不用浪費時間尋找最優解,而是轉為尋找近似問題的乙個近似最佳解

演算法vs硬體?

有效的演算法對效能的提公升大於更好的硬體

算成績海中撈飛機殘骸

發現其實現實生活中的問題,很少要求最佳解的,大部分問題,只需要近似最佳解答就行,只有非要pk出個第一第二的情況才非得最佳解吧,比如地圖軟體多個路徑計算出來最後計算最短時間的路徑o(╯□╰)o

大部分問題都適用,比如叫車軟體啊,各種推薦系統啊,各種套利系統啊,地圖軟體計算路線,blabla

最短路徑不需要經過所有點;旅行商問題需要經過所有點,所以更複雜

優點:插入塊如果知道座標可以快速去地訪問

缺點:查詢慢,刪除慢,大小固定

優點:比無序陣列查詢快

缺點:刪除和插入慢,大小固定

優點:提供後進先出的訪問方式

缺點:訪問其他項很慢

優點:提供先進先出的訪問方式

缺點:訪問其他項都很慢

優點:插入快,刪除快

缺點:查詢慢

優點:查詢,插入,刪除都快(如果數保持平衡)

缺點:刪除演算法複雜

優點:查詢,插入,刪除都快,樹總是平衡的

缺點:演算法複雜

###2-3-4樹

優點:查詢,插入,刪除都快,樹總是平衡的。類似的樹對磁碟儲存有用

缺點:演算法複雜

###雜湊表

優點:如果關鍵字已知則訪問速度極快,插入塊

缺點:刪除慢,如果不知道關鍵則訪問很慢,對儲存空間使用不充分

優點:插入,刪除塊,對最大資料的項訪問很快

缺點:對其他資料項訪問很慢
優點:對現實世界建模

缺點:有些演算法慢且複雜

第一章讀書筆記

本章內容主要講的是android系統移植和驅動開發概述,通過本章的學習知道了學習linux驅動程式設計一定要了解linux驅動只與linux核心有關,與客戶的使用的linux系統無關。也就是說,不管是那個linux系統,只要使用了同樣的linux核心,驅動就可以通過。唯一可以判斷的linux核心是否...

第一章讀書筆記

android的系統架構分為4層 第一層 linux核心。第二層 c c 庫。第三層 android。第四層 應用程式。android移植可兩個部分 應用移植和系統移植。目前linux核心主要維護3個版本 linux2.4,linux2.6和linux3.x,大多數linux系統都使用了這3個版本的...

第一章讀書筆記

若給android增加新的驅動,則hal也要做出相應修改。不同的linux版本的驅動程式並無法通用,那麼通過判斷linux核心版本號是否相同,可以檢驗驅動是否可以通用。目前最廣泛的核心版本應該是linux2.6。電腦或者手機等不同硬體裝置越來越豐富,則需要更多的linux裝置驅動來完成硬體裝置間的互...