演算法導論隨筆 二

2021-10-14 18:33:45 字數 1305 閱讀 4992

手動建堆

void

heapify

(int o)

//維護i號節點的堆性質

if(rs <= n1 &&

(mh[rs]

< mx)

^ fl)

if(mi != o)

else

}}

for

(int i =

(n1 >>1)

; i >=1;

--i)

void

modify

(int o,

int v)

//內部函式,將mh[o]改為v

}else

}

應用:手寫優先佇列 luogu1168

應用**:

#include

#include

#include

#include

#define inf 2147483647

using

namespace std;

int aa[

100005

], n;

voidsw(

int& a,

int& b)

struct minh}}

void

heapify

(int o)

//維護i號節點的堆性質

if(rs <= n1 &&

(mh[rs]

< mx)

^ fl)

if(mi != o)

else}}

void

modify

(int o,

int v)

//內部函式,將mh[o]改為v

}else

}int

top(

)//查詢

void

push

(int v)

//插入

intpop()

//帶返回值的pop

return v;

}int

size()

//堆大小

} q1, q2;

intmain()

else

printf

("%d\n"

, q2.

top())

;}else

else}}

return0;

}

演算法導論二 快速排序

快速排序採用的是分治策略,其方法是將乙個陣列a p,r 劃分為兩個子陣列a p,q 1 a q 1,r 使其左子陣列元素中的元素均小於等於a q 右子陣列元素均大於a q 並遞迴劃分兩個子陣列。其 如下 include using namespace std templateint partitio...

《演算法導論》數論知識總結 二

5.元素的冪 尤拉定理,對於任意z n 中的a,有a phi n mod n a z n mod n 1 單位元 由之前z n 定義處定理可知 費馬定理,對於素數p,a p 1 mod p 1 因為 z p p 1,0不在z p 當中 求冪當然是化成平方的平方的形式比較快 6.rsa公鑰加密系統 公...

演算法導論第二章

插入排序原始碼 1 include 2 include 3 4using namespace std 56 void insert sort inta 7 17 a i 1 key 18 19 2021 intmain 22view code 逆序輸出 1 include 2 include 3 4...