11 6學習筆記

2021-09-29 10:54:39 字數 1626 閱讀 9733

優點:

(1)有序性。

(2)紅黑樹結構。效率比較高,很多操作都可以在logn的時間複雜度下實現。

缺點

空間佔用率高。紅黑樹雖然提高了執行效率,但是每乙個節點都需要額外儲存父節點、孩子節點以及紅/黑性質,使得每乙個節點都需要占用大量空間。

**適用場合:**對於有順序要求的問題,map更加高效。

**優點:**由於內部實現為雜湊表,所以查詢速度非常快。

**缺點:**雜湊表建立比較耗費時間。

**適用場合:**對於查詢問題,更加高效。

vector<

int> res

;for

(auto n : res)

cout<

for

(vecotr<

int>

::iterator iter = res.

begin()

; iter != res.

end(

); res++

) cout<<

*iter;

不過前乙個遍歷是唯讀的,不能修改遍歷的值。如果要修改的話,需要將遍歷的變數宣告為引用型別。比如:

for

(auto

&n : res)

n++;

(1)vector res;

(2)vector res(res1);

等價於:vector res = res1;

(3)vector res = ;

等價於:vector res;

如果列表中元素與初始定義的元素不一樣會進行強制型別轉換。

(4)vector res(res1.begin()+1, res1.end()-1);

(5)vector res(5);

res將包含5個元素,每個元素進行預設值初始化,對於int初始化為0。

(6)vector res(5,3);

res被初始化為包含5個值為3的向量。

using value_t = pair<

int,

int>

;

指定別名。

lambar表示式把函式看作物件,lambar表示式可以像物件一樣使用,比如可以賦給變數和作為引數傳遞,還可以像函式一樣對其求值。

比如找出10億個數中最小的一百個。

要利用分布式思想處理海量資料。一台機器不可能跑完所有的資料,可以把資料分散在多台機器中,然後每台機器平行計算各自的topk資料,最後彙總再計算得到最終的topk資料。

對於每個機器分散的資料排序,利用堆。維護乙個大小為k的大頂堆。最開始依次把資料放入堆中,當堆的大小滿的時候,只需要將堆頂元素與下乙個數比較:如果小於堆頂元素則將當前堆頂元素拋棄,並將該元素插入堆中。遍歷完所有的資料即可得到topk資料。

對於複雜度,遍歷陣列需要o(n),一次堆化操作需要o(logk),總共需要o(nlogk)的複雜度,一般k遠小於n,所以o(nlogk)接近於o(n)。

棧一般儲存的是函式的呼叫資訊的函式中申明的變數,因為函式的呼叫是遞迴的,外層函式一定比內層被呼叫的函式先載入和執行,等到內層被呼叫函式結束後才能結束,即需要先進後出。

11 6 C語言學習

逆序輸出 include define maxn 105 int a maxn int main for int i n 1 i 1 i printf d a i printf d n a 0 return 0 scanf d x 其返回值為正確輸入的變數個數.正確執行時會成功給x賦值,即賦值了乙個...

u boot 1 1 6移植筆記(初級篇)

u boot版本 1.1.6 交叉編譯器 3.3.2 開發板 友善之臂mini2440 開發板配置 soc s3c2440 網絡卡 dm9000 nor flash am29lv160db 2m nand flash 256m sdram 64m 以原始檔已存在的 smdk2410專案為基礎進行移植...

機房測試 11 6

電子科大的題,整體不錯,就是t3水了點。但是分3頁pdf是無法接受的 歡迎 ssw02的部落格 為什麼叫三教呢 ssw02還是個高中生,當然不知道了。讀入 第一行兩個非負整數 表示表示補給點個數和需要收集的體力數 第二行 n 個非負整數 第 i 個整數表示在不觸發 bug 的情況下補給點 提供的體力...