![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法基础
gorllen
这个作者很懒,什么都没留下…
展开
-
变种二分查找
int find(int a[], int n, int x) { int left = 0; int right = n-1; while(left <= right) { int mid = left + (right - left)/2; if(a[mid] == x) return mid; else if(a[mid] >= a[left])//左边升序 {原创 2014-09-18 17:38:26 · 1213 阅读 · 0 评论 -
堆排序
void myswap(int &a, int &b){int tmp = a;a = b;b = tmp;}//push element i down to a proper layer//until the subtree rooted by i is adjusted to a heapvoid minHeapFixdown(int heap[], int i, int n){int tmp原创 2014-08-25 11:09:26 · 431 阅读 · 0 评论 -
递归求解二——寻找指定和的组合
/* 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来 */原创 2014-09-12 18:41:44 · 446 阅读 · 1 评论 -
递归求解一——求二叉树的最大距离
如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。 写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。原创 2014-09-12 15:51:55 · 510 阅读 · 0 评论