算法
Winjay_233
这个人不懒,留下了这行字
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
nth_element()
原题: 输入 多组输入数据 第一行为正整数n(1 接下来n个int范围内的正整数 输出 对于每组数据,输出一行,为这n个数中的的中位数 解析: 本题旨在快速求解中位数,考虑使用STL中位于库下的element(start,start+n,end)函数,其作用是使第n大元素处于第n位置,并且比这个元素小的排在这个元素前面,比这个元素大的排在后面。原创 2017-10-03 20:37:45 · 412 阅读 · 0 评论 -
STL中的四个二分查找算法(binary_search lower_bound upper_bound equal_range)
头文件 四个函数均在头文件中 1. binary_search(begin,end,key) 用法:从begin到end查找元素key,若存在与key相等的元素,返回true,否则返回false。 例程: #include #include using namespace std; int main() { int a[6] = {1,2,3,4,5,6}; int k原创 2017-10-27 16:33:39 · 417 阅读 · 0 评论 -
《算导》练习题 2.3-7
题目: 设计算法:查找集合 S 中是否存在两个其和等于 x 的元素。 解析: 先排序(sort),对每个数组元素(s[i]),在数组中二分查找它的补元素(x-s[i]):利用中的binary_search(起始位置,终止位置,目标值)和lower_bound(起始位置,终止位置,目标值)即可快速查找。最后输出相应结果即可。 附上函数讲解: STL之二分查找(binary_search()原创 2017-10-13 15:50:35 · 457 阅读 · 0 评论 -
快速求解阶乘最后非零位
题目: 给定一个以字符串方式输入的大数,求其阶乘最后非零位。 代码: #include #include #define maxn 10000 int Last_Digit(char *buf) { const int mod[20] = {1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2}; int len = strlen(buf),a[m原创 2017-10-13 16:52:51 · 1495 阅读 · 2 评论 -
优先队列的简单用法
头文件: 常用操作: push()入队新元素 pop()优先级最大的元素出队 top()取得当前优先级最大的元素 size()获得队列中元素的个数 empty()判断队列是否为空 例程: #include #include #include #include using namespace std; int main() { priority_queuepq;原创 2017-10-26 10:37:52 · 434 阅读 · 0 评论
分享