這只是我的一些筆記
資料結構與演算法廣義理解:
資料結構與演算法的全面知識點
10個資料結構:
10個演算法:
「邊學邊練」這一招非常有用。建議你每週花1~2個小時的時間,集中把這週的三節內容涉及的資料結構和演算法,全都自己寫出來,用**實現一遍。
知識需要沉澱,不要想試圖一下子掌握所有
時間複雜度
大o時間複雜度表示法
大o時間複雜度實際上並不具體表示**真正的執行時間,而是表示**執行時間隨資料規模增長的變化趨勢,所以,也叫作漸進時間複雜度(asymptotic time complexity),簡稱時間複雜度。
時間複雜度分析
只關注迴圈執行次數最多的一段**
加法法則:總複雜度等於量級最大的那段**的複雜度
乘法法則:巢狀**的複雜度等於巢狀內外**複雜度的乘積
幾種常見時間複雜度分析
粗略分為多項式量級和非多項式量級。其中非多項式量級只有兩個:o(2n2
2n)和o(2!2!
歸併排序、快速排序的時間複雜度都是nlo
gnnlog
nlogn。
o(m+n)、o(m×
\times
×n)**的複雜度由兩個資料的規模來決定。
int
cal(
int m,
int n)
int sum_2 =0;
int j =1;
for(
; j < n;
++j)
return sum_1 + sum_2;
}
m和n是表示兩個資料規模,不能簡單地利用加法法則,省略掉其中乙個。所以,上面**的時間複雜度就是o(m+n)。
但是乘法法則繼續有效:t1(m)*t2(n) = o(f(m) * f(n))。
空間複雜度分析
空間複雜度全稱就是漸進空間複雜度(asymptotic space complexity),表示演算法的儲存空間與資料規模之間的增長關係。
我們常見的空間複雜度o(1)、o(n)、o(n2 )
Lucene使用前概念了解
資料庫中的搜尋很容易實現,通常都是使用sql語句進行查詢,而且能很快的得到查詢結果。為什麼資料庫搜尋很容易?因為資料庫中的資料儲存是有規律的,有行有列而且資料格式 資料長度都是固定的。我們生活中的資料總體分為兩種 結構化資料和非結構化資料。結構化資料 指具有固定格式或有限長度的資料,如資料庫,元資料...
網路 一些概念了解
reactor和proactor模式的主要區別是真正的讀取和寫入操作,是由誰來完成的。reactor 應用程式自己讀取或者寫入資料。應用程式完成 proactor 應用程式不需要進行實際的讀寫過程,只需要從快取區讀取或者寫入即可。核心會讀取快取區或者寫入快取區到真正的io裝置。核心完成 同步和非同步...
從基本概念了解Keras
這篇文章會總結幾個keras的基本概念,了解了這幾個基本概念,keras建模將會快速上手。話不多說,直奔主題!張量 tensor 可以理解為keras裡的一種資料型別,相當於c語言裡得陣列。你在儲存的時候總需要了解資料的長度 大小還有維度各種各樣的資訊,而這個tensor就是用來幹這個的。舉幾個例子...