手動建堆
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...