
二分法
文章平均质量分 78
bobten2008
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 2112 Optimal Milking
Optimal MilkingTime Limit: 2000MS Memory Limit: 30000KTotal Submissions: 3151 Accepted: 1260Case Time Limit: 1000MSDescriptionFJ has moved his K (1 <= K原创 2010-01-11 23:51:00 · 1217 阅读 · 0 评论 -
链式结构的归并排序
struct node{int32_t value;node* head;node* tail;}int compare_node(node* node_1, node* node_2){if(node_1->value value){return -1;}else if(node_1->value == node_2->value){return 0;}else{return 1;}}/*对链式结构进行归并排序, 输入是待排序链表表头,返回值是排序后的表头指针sort_type = -1: 升序, 1:降原创 2010-10-19 15:56:00 · 1646 阅读 · 0 评论 -
如何求两个有序数组的第K个数
<br />给定两个已排序数组,如何求第K个数。传统的做法就是类似归并排序的方式,时间<br />复杂度是O(N),这里给出一个二分法,时间复杂度是O(lgN)<br /> <br />#include <iostream> #include <algorithm> #include <ctime> //#define DEBUG #define MINV(a, b) ((a) <= (b) ? (a) : (b)) #define MAXV(a, b) ((a) >= (b) ? (a) :原创 2010-12-24 22:50:00 · 2612 阅读 · 0 评论 -
一颗完全二叉树,求其结点个数
网上看了很多人的答案,都说最优解是o(n),想到了一种更快的算法,负责度是O(lgn的平方),就是对左右子树进行二分,找最后一层的最右边那个结点即可: #include #include #include using namespace std; struct Node { Node* left; Node* right; ~Node() { if (lef原创 2013-08-03 20:29:45 · 3662 阅读 · 0 评论 -
行列有序数组求给定数是否存在
沿对角线二分,并对独行独列进行优化 输入示例: 样例输入: 3 3 5 1 2 3 4 5 6 7 8 9 3 3 1 2 3 4 5 6 7 8 9 10 3 3 12 2 3 4 5 6 7 8 9 10 样例输出: Yes No No #include #include #include using namespace std; co原创 2013-08-14 09:34:28 · 1099 阅读 · 0 评论