Prim算法实现代码如下:#include <iostream>using namespace std;typedef struct Node{ int shortdist; //用于记录到节点的最短距离 int flag; //用作标志变量,表示借点已经加入到集合中 int prev; //前驱结点} Node;void Prim(int map[][10],int num,Node *vertex){ for(int i=0;i<num;i++) { vertex[i].sho... Read More
posted @ 2013-04-20 23:23 再见,少年 Views(238) Comments(0) Diggs(0) Edit
迪杰斯特拉算法代码如下:#include <iostream>using namespace std;typedef struct Node{ int shortdist; //用于记录到节点的最短距离 int flag; //用作标志变量,表示借点已经加入到集合中 int prev; //节点的前驱结点} Node;void Dijkstra(int num,int startvertex,int map[][10],Node *vertex){ for(int i=0;i<num;i++) ... Read More
posted @ 2013-04-20 11:27 再见,少年 Views(261) Comments(0) Diggs(0) Edit
哈夫曼编码#include <iostream>using namespace std;typedef struct Node{ int data; int leftposition; int rightposition;}Node;void Heap_Character(Node *data,int num,int start) //保持小根堆的性质函数{ int left=start*2; int right=start*2+1; int smallest=start; if(left<=num&&data[le... Read More
posted @ 2013-04-18 17:30 再见,少年 Views(302) Comments(2) Diggs(0) Edit
优先级队列#include <iostream>using namespace std;void KeepCharacter(int *data,int n,int num) //保持性质函数,保证是一个大根推;{ int left=n*2; int right=n*2+1; int max; //记录最大的数字的位置; if(left<=num&&data[n]<data[left]) //比较根与左孩子大小,挑出一个比较大的数 max=left;... Read More
posted @ 2013-04-16 23:05 再见,少年 Views(163) Comments(0) Diggs(0) Edit
堆排序#include <iostream>using namespace std;int tempnum;void KeepCharacter(int *data,int n,int num) //保持性质函数,保证是一个大根推;{ int left=n*2; int right=n*2+1; int max; //记录最大的数字的位置; if(left<=num&&data[n]<data[left]) //比较根与左孩子大小,挑出一个比较大的数 max=left; else ... Read More
posted @ 2013-04-15 23:45 再见,少年 Views(134) Comments(0) Diggs(0) Edit
堆排序 自底向上的归并排序: 希尔排序: 快速排序: 计数排序: 对于一个int数组,请编写一个计数排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: 对于一个int数组,请编写一个基数排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返 Read More
posted @ 2013-04-15 23:44 再见,少年 Views(142) Comments(0) Diggs(0) Edit
贪心选择算法为算法分析中一种常用算法,通过一系列的选择来得到一个问题的解。它所作的每一个选择都是当前状态下某种意义的最好选择,即贪心选择。希望通过每次所作的贪心选择导致最终结果是问题的一个最优解。这种启发式的策略并不总能奏效,然而在许多情况下确能达到预期的目的。对于可利用贪心算法解决的问题需要同时满足:最优子结构性质和贪心选择性质。1.贪心选择性质 所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。在动态规划算法中,每步所作的选择往往依赖于相关子问题的解。因而只有在解出相关子问题后,才 Read More
posted @ 2013-04-15 15:15 再见,少年 Views(2156) Comments(0) Diggs(0) Edit
该算法是一个比较经典的算法,是关于活动的安排,题目是这样的:若干活动等待安排,每个活动有一个开始和结束的时间,要求选出一个活动的序列使得在指定的时间区间内能够完成更多的活动。算法的代码如下:#include <iostream>using namespace std;typedef struct active{ int num; //活动编号 int starttime; //活动开始时间 int endtime; //活动结束时间 bool flag;} active;void SortActive(active *meeting... Read More
posted @ 2013-04-10 11:24 再见,少年 Views(391) Comments(0) Diggs(0) Edit
递归算法之排列问题,问题的描述是这样的,给定一串数字,输出这串数字的全排列。#include <iostream>using namespace std;int result=0;void Swap(int *data,int a,int b){ int temp; temp=data[a]; data[a]=data[b]; data[b]=temp;}void Perm(int *data,int k,int m){ if(k==m) { for(int i=0;i<m;i++) cout<<data[i]; c... Read More
posted @ 2013-04-09 23:26 再见,少年 Views(378) Comments(0) Diggs(0) Edit
回文质数时限:1000ms 内存限制:10000K 总时限:3000ms描述:因为151即是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。 写一个程序来找出范围[a,b](5 <= a < b <= 100000000)间的所有回文质数;输入:单独一行,两个长整型数,a,b(以空格隔开)。输出:从小到大,输出一个回文质数的列表,一行一个。输入样例:5 500输出样例:5 7 11 101 131 151 181 191 313 353 373 383#include <iostream>#include <string&g Read More
posted @ 2013-04-03 20:53 再见,少年 Views(348) Comments(0) Diggs(0) Edit