大一算法
文章平均质量分 73
olo721727175
这个作者很懒,什么都没留下…
展开
-
并查集总结
今天做的题目,我用关系闭包实现了,别人用的并查集,我又尝试了一下。 并查集就是把森林按某种关系合并即定义; 并查集的算法: 1,初始化森林,每棵树都只有一个点; 2,将有关系的点所在的树合并:如果两个树的名字相同就放回,因为已经是在一个树下了,如果不相同就把名字大的树的名字改成小的,(用数组表示树forast[顶点]==顶点所在的树此阶段在f原创 2010-03-13 18:17:00 · 410 阅读 · 0 评论 -
二分图总结
以下为我做题总结所得:定义的作用是:判断某类问题能否用此类方法解决,所以定义的全面性,准确性非常重要!比如说定义手机,主要是用来远程通话的,如果我们需要与别人联系就需要他了。而有手机做菜就不合适了!二分图定义:边的两个端点分居两个集合中的图是二分图二分图最大匹配的定义:①将所有边占有的最少端点数即最小覆盖②在无向图中图中无公共端点的最大边数③端点总数-最大无关系点数以上是针原创 2010-03-13 18:21:00 · 458 阅读 · 0 评论 -
最小生成树
概念:将图中所有顶点连结,并且使边的总权值最小所形成的树。 算法:1:初始化一个点a,并把a加入候选点数组point[]中,将所有可能与a相连的点列于数组array;2:在array中选边,array[]>的权值最小的边,array[i]>;3:在图中找权值比array中还小的边替代array中的边;3:循环1,2步骤;例题(来自:http://acm.hdu.edu.原创 2010-03-13 17:49:00 · 470 阅读 · 0 评论 -
hdu Can you find it?之折半查找
<br />这道题说明:折半查找时间复杂度低,数据可以边吸收边计算,空间复杂度低,有效的代替了暴力算法、把查找与等式相融合、<br />#include<stdio.h><br />#include<stdlib.h><br />int sum[250005];<br />int com(const void *a,const void *b)<br />{<br /> return *(int*)a-*(int *)b;<br />}<br />int midsearch(int key,int low,原创 2011-03-03 19:53:00 · 441 阅读 · 0 评论 -
合并排序(递归法)5
/*arry[100]mergesort(s,e){s1=s;s2=(s+e)/2+1;e1=s2-1;e2=e;if(smergesort(s1,e2);mergesort(s2,e2);merge(s1,s2,e21,e2);}else return ;递归错误,把函数入口数据输出*/#includeint arry[100],n;int temp[55];void merge(int s1,int s2,int e1,int e2){ int i=s1,j=s2,k=0; while(i if(ar原创 2011-03-03 19:40:00 · 374 阅读 · 0 评论 -
求链表长度
<br />//求链表长度<br />#include<stdio.h><br />#include<stdlib.h><br />typedef struct No{<br /> int date;<br /> No* next;<br />} Node;<br />Node *creat()<br />{<br /> Node *head=NULL,*p,*tail;<br /> int x;<br /> scanf("%d",&x);<br /> while(x!=-1){<br /> p=(Nod原创 2011-03-03 19:45:00 · 621 阅读 · 0 评论 -
两个有序数列的合并(链表的应用)(4)
<br />//两个有序数列的合并<br />#include<stdio.h><br />#include<stdlib.h><br />typedef struct No{<br /> int date;<br /> No* next;<br />} Node;<br />Node *creat()<br />{<br /> Node* p=NULL,*head=NULL,*tail=NULL;<br /> int x;<br /> head=(Node*)malloc(sizeof(Node))原创 2011-03-03 19:47:00 · 754 阅读 · 0 评论 -
链表的建立,插入,删除,查找(1)
<br />磨磨蹭蹭弄完了,效果还行@!<br />#include<stdio.h><br />#include<stdlib.h><br />typedef struct No{<br /> int date;<br /> No* next;<br />} Node;<br />//////////////链表的建立///////////////<br />Node* creat(int n)<br />{<br /> Node *head=NULL,*p,*tail;<br /> int i;<br原创 2011-03-03 19:50:00 · 409 阅读 · 0 评论