void
quick_sort
(int q,
int l,
int r)
quick_sort
(q, l, j)
,quick_sort
(q, j+
1, r)
;}
補充:快速選擇演算法(用於快速查詢陣列中第k大(小)的元素)
int
quick_select
(vector<
int>
& q,
int l,
int r,
int k)
if(j-l+
1>=k)
return
quick_select
(q, l, j, k)
;//判斷是不是已經有k個數字大於基準了
else
return
quick_select
(q, j+
1, r, k-
(j-l+1)
);//如果取後半部分,注意對於後面的k值已經改變了
}int
findkthlargest
(vector<
int>
& nums,
int k)
sort方法包含標頭檔案, sort(first_pointer, first_pointer+n, cmp)。
1).定義比較函式
int a[
100]
;bool
cmp1
(int a,
int b)
//int為陣列資料型別
sort
(a,a+
100,cmp1)
;
2).更懶的方法
functional提供了一堆基於模板的比較函式物件,它們是:equal_to、not_equal_to、greater、greater_equal、less、less_equal。
//簡單使用方法
sort
(a,a+
100,greater<
int>()
);//降序排列
sort
(a,a+
100,less<
int>()
);//公升序排列
public
intsearchnum
(int target)
else
if(target)else
}return-1
;//表示沒有找到該數字
}public
intfindleftbound
(int target)
else
}return l;
}public
intfindrightbound
(int target)
else
}return r-1;
}————————————————
1. 遞迴
1). 先序
void
_preorder
(pnode& proot)
}void
preorder()
2).中序void
_inorder
(pnode& proot)
}void
inorder()
3).後序void
_postorder
(pnode& proot)
}void
postorder()
常用演算法模板(持續更新)
你還在用迴圈累乘嗎?如果是的話,那麼你就要wa了,而且大數妥妥的超時 來來,本菜鳥帶你們學一下基於二進位制的快速冪 本例子我們用m的n次方 比如2 13,把13化為二進位制1101 那麼我們就可以把 21101 20001 20100 21000 int fun int n return sum 簡...
C 標準模板庫 STL 常用演算法
algorithm中的函式 find start,end,value start搜尋的起點,end搜尋的終點,要尋找的value值 find a.begin a.end value find a,a length,val 所有的返回,均是迭代器 容器 或指標 陣列 而非是直觀感覺上的索引下標。如果在...
匈牙利演算法模板 KM演算法模板
匈牙利演算法模板 時間複雜度為o ve v為二分圖左邊的頂點數,e為二分圖中邊的數目 include includeconst int maxn 1010 const int maxm 20010 const int max 10001 const int inf 1000000000 int li...