為什麼需要了解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裝置驅動來完成硬體裝置間的互...