- 博客(5)
- 收藏
- 关注
转载 扩展的欧几里得算法
扩展的欧几里得算法 欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a mod b
2010-03-04 10:08:00
502
转载 利用广义表非递归构造二叉树
#includeusing namespace std;const int nax=100;typedef struct tr{ int data,left,right; int label;}btree;btree tree[100];bool ck[100];int recreat(int *mid,int *post,int len)//len结点个数{ int i,j,root=0,tro
2009-12-21 21:25:00
750
转载 二叉树中序遍历的非递归算法(栈为辅助数组)
#include#include#define STACK_INIT_SIZE 100//栈初始分配的空间数#define STACKINCREAMENT 10//栈空间不够时增加的空间数typedef char eletype;//二叉树结点信息类型typedef struct BiTNode//二叉树结点类型{ struct BiTNode *lchil
2009-12-21 21:18:00
1060
原创 求两个大小为n的已排序数组的中位数
数组x和Y 1.如果n为奇数,每个数组的中位数为x[m],y[m], n=2m+1; a.. 如果x[]==y[]则返回x[m]; b.. 若前者大于后者,则下次寻找范围为x[m+1......n] y[0.......m-1]; c.. 若前者大于后者,则下次寻找范围为x[0....m-1] y[m+1....n];2.如果n为偶数,每个数组的中位数
2009-12-21 20:19:00
654
1
原创 k路归并 Young氏矩阵的相关算法(转)
二.基于堆的K路合并问题.题:请给出一下时间为O(n*lgk),用来将 k 个已排序链表合并为一个排序链表的算法.此处,n 次所有输入链表中元素的总数.答:新建一个链表,再申请一个大小为 k 的数组A,首先把 k 个已排序链表的第一个元素压入 A 中,将 A 建成一个最小堆,花费O(k) 的时间.然后将堆 A 的第一个元素 min(也就是最小的那个)放入链表中.再将min->nextNod
2009-12-19 10:30:00
632
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人