函数
恋上鱼的猫
这个作者很懒,什么都没留下…
展开
-
Prim算法(全程注释)
1、2个for循环都是从2开始的,因为一般我们默认开始就把第一个节点加入生成树,因此之后不需要再次寻找它。2、lowcost[i]记录的是以节点i为终点的最小边权值。初始化时因为默认把第一个节点加入生成树,因此lowcost[i] = graph[1][i],即最小边权值就是各节点到1号节点的边权值。3、mst[i]记录的是lowcost[i]对应的起点,这样有起点,有终点,即可唯转载 2009-07-31 12:03:00 · 1458 阅读 · 0 评论 -
Floyd算法
#include #define MaxDistance 0x7fffffff//设定MaxDistance为无穷大#define NumOfVertex 300void Floyd(int Graph[][NumOfVertex],int Vertex);int main(){ int Graph[NumOfVertex][NumOfVertex]; int原创 2009-08-01 16:27:00 · 713 阅读 · 0 评论 -
字符串相关函数
strcmp 比较字符串strcmpi 忽略大小写比较字符串upper 转换为大写blanks 产生空字符串strmatch 查找匹配的字符串strjust 对齐字符数组,包括左对齐,右对齐和居中原创 2009-08-05 18:25:00 · 511 阅读 · 0 评论 -
二分查找(递归与非递归)
递归方法 int BinSearch(int Array[],int low,int high,int key/*要找的值*/){ if (low<=high) { int mid = (low+high)/2; if(key == Array[mid]) return mid; else if(key<Array[mid]) return B原创 2009-08-06 17:04:00 · 51411 阅读 · 4 评论 -
Dijkstra算法
#include #include #include #define MaxVertex 250#define INIT 999999void Dijkstra(int Graph[][MaxVertex],int NunOfVertex,int OriginalPoint,int PrePoint[],int dist[]){ int i,j; int min原创 2009-08-05 10:34:00 · 540 阅读 · 0 评论 -
欧几里德辗转相除的扩展函数
#include /*函数名:gcdex返回值: a,b的最大公约数功能:求出a,b最大公约数,并且解出方程 a*u+b*v = gcd(a,b) u,v的值例子:24 36它们的公约数为1212 = 24*(-1)+36*(1)*//*程序的算法依据:a%b = a-(a/b)*b这个公式可以用矩阵表示出来| 0原创 2009-08-17 11:13:00 · 823 阅读 · 0 评论 -
自己写的凸包模板
#include #include #include #define Max 501#define eps 1e-8using namespace std;struct point { double x; double y; double cross;};point stack[Max];//储存凸包边缘顶点point points[Ma原创 2009-08-27 12:10:00 · 771 阅读 · 1 评论 -
最长公共子序列模板(O(mn))
#include #include #define Max 1001int Graph[Max][Max];int max(int a,int b){ return a>b?a:b;}int LCS(char a[],char b[]){ int i,j; int len1=strlen(a); int len2=strlen(b)原创 2009-09-11 22:20:00 · 813 阅读 · 0 评论 -
sscanf 与scanf
sscanf 名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); 说明: sscanf与转载 2009-10-05 11:33:00 · 2027 阅读 · 1 评论