資料結構 概念了解

2021-10-04 02:55:08 字數 1766 閱讀 5678

這只是我的一些筆記

資料結構演算法廣義理解:

資料結構與演算法的全面知識點

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就是用來幹這個的。舉幾個例子...