
算法
文章平均质量分 75
路漫漫之大神之养成
请多多指教!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
约瑟夫环--数组实现
# include # define n 21 //总人数 # define m 3 //淘汰的人所报的数 struct person { int num; //num存放当前报数人原来所在的位置 int next; //next表示下一个人的位置 }link[n+1]; //建立21个‘人’ int main (void) { int count,i,h; for原创 2016-04-01 13:17:17 · 456 阅读 · 0 评论 -
DFS--图中两点之间的路径
# include # include # include # define MAX 20 //最大顶点数 typedef struct VNODE { int num; //该边所指的顶点的位置 struct VNODE *next; //指向下一条边的指针 }arcnode; //表的结点 typedef struct LIST { char data;原创 2016-04-11 21:50:38 · 2237 阅读 · 1 评论 -
BFS--广度优先搜索--图的邻接表
# include # include # include # define MAX 20 //顶点最大值 typedef struct ARCNODE { int num; //该边所指的顶点的位置 struct ARCNODE *next; //指向下一条边的指针 }arcnode; //表的结点 typedef struct VNODE { char原创 2016-04-11 21:38:47 · 520 阅读 · 0 评论 -
BFS-图的广度优先搜索--邻接矩阵
# include # include # include # define MAX 20 //最大顶点数 typedef struct { char vexs[MAX]; //顶点向量 bool visited[MAX]; //访问标志数组 int arcs[MAX][MAX]; //邻接矩阵 int arcnum,vexnum; //图的当前顶点数和弧数原创 2016-04-11 21:30:20 · 608 阅读 · 0 评论 -
dijkstra算法--求两点之的最短路径
# include # define MAX 20 int creat_cost(int cost[][MAX]) //cost 用来表示图的邻接矩阵 { int arcnum,vexnum,v1,v2,w; printf ("请输入顶点个数和弧数\n"); //输入图的顶点数和弧数 scanf ("%d %d",&vexnum,&arcnum); for (int i=1;原创 2016-04-13 14:38:53 · 1001 阅读 · 0 评论 -
BFS--点到点间的最短路径
# include # include # include # define MAX 20 //最大顶点数 typedef struct ARCNODE { int num; //该边所指的顶点的位置 struct ARCNODE * next; //指向下一条边的指针 }arcnode; //表的结点 typedef struct Vnode { char d原创 2016-04-12 14:32:51 · 1229 阅读 · 0 评论 -
约瑟夫环--链表实现
# include # include //# define n 21 //# define m 3 typedef struct Node { int data; struct Node * next; }NODE,*pnode; typedef struct linklist { pnode phead; pnode ptail; int len; }LINK,*plink;原创 2016-04-01 15:03:08 · 545 阅读 · 0 评论 -
希尔排序
希尔排序:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2 最后一遍的增量必须是1,其实是就是调用直接插入排序算法。 # include void shell_sort(int a[],int len); void shell_insert(int a[],int原创 2016-04-02 18:42:02 · 380 阅读 · 0 评论 -
DFS--深度优先搜索--图的邻接表表示
# include # include # include # include # define ok 1 # define NULL 0 # define MAX 20 //最大顶点数 typedef struct ARCNODE { int adjvex; //该边所指的顶点的位置 struct ARCNODE * next; //指向下一条边的指针 // i原创 2016-04-06 20:59:20 · 483 阅读 · 0 评论 -
DFS--深度优先搜索--图的邻接矩阵
# include # include # include # define MAX 10 //最大顶点数 typedef struct { char vexs[MAX]; //顶点 向量 bool visited[MAX]; //访问标志数组 int arcs[MAX][MAX]; //邻接矩阵 int arcnum,vexnum; //图的当前结原创 2016-04-06 14:18:37 · 746 阅读 · 0 评论 -
归并排序
归并排序:利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。可以用于外排序。 # include void merge_sort(int a[],int b[],int low,int high); void merge(int a[],int b[],int low,int mid,int high); int main(void) { int a[]原创 2016-04-02 19:30:04 · 450 阅读 · 0 评论 -
直接插入排序
直接插入排序:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。当数组已经排好序,直接插入排序的时间复杂度为O(n) # include void insert_sort(int a[],int len); int main(void) { int a[]={165,416,51,654,351,6541,3241,654,3,原创 2016-04-02 18:22:39 · 339 阅读 · 0 评论 -
堆排序
堆排序:根据输入数据,利用堆的调整算法形成初始堆,然后交换根元素与尾元素,总的元素个数减1,然后从根往下调整。堆排序的最好、最坏、平均时间复杂度都为O(nlogn) # include void heap_adjust(int a[],int i,int len); void heap_sort(int a[],int len); int main (void) { int a[]={1原创 2016-04-02 18:09:38 · 408 阅读 · 0 评论 -
直接选择排序
直接选择排序:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。 # include void select_sort(int a[],int len); int main (void) { int a[]={1,3,5,8,634,64,3,16,46,1,63}; select_sort(a,sizeof(a)/sizeof(原创 2016-04-02 09:43:27 · 424 阅读 · 0 评论 -
冒泡排序
冒泡排序:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 # include void msort(int a[],int n); int main (void) { int a[]={1,2,3,564,48,412,55465,463,164,}; msort(a,(sizeof(a)/sizeof(a[0]))); for (i原创 2016-04-02 09:31:33 · 382 阅读 · 0 评论 -
快速排序
快速排序: # include void qsort(int a[],int low,int hight); int main (void) { int i; int a[]={1,5,3,9,7,5,6,2,48,646,65}; qsort(a,0,sizeof(a)/sizeof(a[0])-1); //sizeof(a)/sizeof(a[0])-1 表示数组的长度 f原创 2016-04-02 09:24:01 · 389 阅读 · 0 评论 -
catalan数
卡塔兰数的一般公式为 C(n,2n)/(n+1)。 性质:令h(0)=1,h(1)=1,卡塔兰数数满足递归式: h(n)= h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2),这是n阶递推关系; 还可以化简为1阶递推关系: 如h(n)=(4n-2)/(n+1)*h(n-1)(n>1) h(0)=1 该递推关系的解为:h(n)=C(2n原创 2016-04-15 12:57:54 · 458 阅读 · 0 评论