您的位置:首页 > 其它

STL数学算法及堆排序算法

2008-12-29 22:34 337 查看
数字算法:<numeric>
算法说明
T accumulate(InIt first,InIt last, T val);
返回[first,last)所有元素相加后与val的和
T accumulate(InIt first,InIt last, T val, Pred pr);
对[first,last)的元素依次递归调用pr,Vn=pr(Vn-1,Ai),V0=T;
OutIt adjacent_difference(InIt first,InIt last,OutIt result);
对[first,last)的元素依次执行Vi=Ai+1-Ai,Vi存储在result开始的容器里,返回目标区间最后一个元素的下一个位置
OutIt adjacent_difference(InIt first,InIt last,OutIt result, Pred pr);
对[first,last)的元素依次执行Vi=pr(Ai+1-Ai),Vi存储在result开始的容器里,返回目标区间最后一个元素的下一个位置
T inner_product(InIt1 first1,InIt1 last1,Init2 first2, T val);
对[first1,last1)上的元素Ai,[first2,last2)的元素Bi,递归执行Ti=pr1(Ti-1,pr(Ai,Bi)),其中T-1=val,返回最后T的值,第一种形式 为
∑A
i
B
i
T inner_product(InIt1 first1,InIt1 last1,Init2 first2, T val, Pred1 pr1, Pred2 pr2);
OutIt partial_sum(InIt first,InIt last,OutIt result);
Ri=
∑Aj (0~i),把Ri存储到result开始的位置,返回目标区间最后一个元素的下个位置
OutIt partial_sum(InIt first,InIt last,OutIt result, Pred pr);
Ri=pr(Ri-1,Ai),其中R0=*first,
把Ri存储到result开始的位置,返回目标区间最后一个元素的下个位置
堆排序算法:
void make_heap(RanIt first, RanIt last);void make_heap(RanIt first, RanIt last, Pred pr); 
用[first,last)之间的元素生成一个堆,pr是用于比较数值的二元函数
void sort_heap(RanIt first, RanIt last);void sort_heap(RanIt first, RanIt last, Pred pr);
堆排序[first,last)之间的数值序列,pr指定比较数值的二元判定函数
void push_heap(RanIt first, RanIt last);void push_heap(RanIt first, RanIt last, Pred pr);
void pop_heap(RanIt first, RanIt last);void pop_heap(RanIt first, RanIt last, Pred pr);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: