王晓东计算机算法设计与分析例题实现
小少年驭风
在学校读书的小伙子
展开
-
循环赛日程问题
循环赛日程问题,树上在讲分治法,但是算法的实现确是用循环来实现的,我们用递归来实现这一个算法,比较简单,但是希望大家看完给一点意见。 #include using namespace std; #include void Copy(int **a,int n,int x1,int y1,int x2,int y2) { for(int i=0;i {原创 2017-04-19 15:39:31 · 395 阅读 · 0 评论 -
快速排序问题
快速排序问题是一个时间复杂度为O(nlgn)的算法,下面就是快速排序的具体实现的过程,希望大家能够给一些建议。 下面我们来研究一下最坏情况下这个算法的时间复杂度,以及什么是这个算法的最坏情况。 1.最坏情况的分析,最坏情况就是partition划分的过程当中,因为其时间复杂度为O(n),而每一次花分都是一边n-1另一边是1,所以这个时候 T(n)=T(n-1)+O(n),所以总的来说时间复杂原创 2017-04-19 16:46:26 · 416 阅读 · 0 评论 -
Kruskal算法 留给自己进行使用,如有侵权请告知删除
#include using namespace std; #include #include #include const int maxn=101; struct edge { int from; int to; int cost; friend bool operator <(const edge &e1,const edge &e2) {转载 2017-05-03 08:53:08 · 1176 阅读 · 4 评论 -
prim算法
#include<iostream> using namespace std; #include<stdio.h> const int maxn=100; bool s[maxn]; int lowcost[maxn]; int closest[maxn]; int c[maxn][maxn]; void prim(int n) { int total=0; ...原创 2017-05-03 11:41:52 · 350 阅读 · 0 评论 -
huffman树 自己实现的大家可以看一看
这是我自己实现的霍夫曼树,我觉得大家需要注意的最主要的问题就是使用优先队列的话,你每往里面插入一个对象的话就会生成一个新的对象这个时候你的地址就发生变化了,所以我直接开了一个全局变量的element的数组,然后每一个element直接保存了自身的地址,这让你插入优先队列的话就不会发生问题了,就算插入之后地址发生了变化,但是你有myself这个指针保存着自身的地址,所以说,当两个节点需要合并的时候,就可以解决地址发生变化的问题了。原创 2017-05-03 23:57:55 · 281 阅读 · 0 评论