算法
yishuige
这个作者很懒,什么都没留下…
展开
-
字符串全排列算法
#include #include #include using namespace std;void swap(char* x, char* y){ char tmp; tmp = *x; *x = *y; *y = tmp;}/* Function to print permutations of stringThis转载 2016-01-05 14:26:19 · 326 阅读 · 0 评论 -
快速算法
该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。 虽然快速排序称为分治法,但分治法这三个字显然无法很好的概括快速排序的全部步骤。因此我的对快速排序作了进一步的说明:挖坑填数+分治法:先来看实例吧,定义下面再给出(最好能用自己的话来总转载 2016-01-06 14:56:43 · 237 阅读 · 0 评论 -
匈牙利算法
比如有三个人 要选择礼物,每个人都有自己喜欢的礼物,如果拿不到喜欢的礼物,宁愿放弃int a[4][4] = { {0}, {0, 1,1 }, { 0, 0, 1,1 }, { 0, 1 } }; 第一个人喜欢第1、2个礼物第二个喜欢第2,3个礼物,第三个人喜欢第一个礼物,问最佳匹配能匹配多少个算法步骤;该算法共涉及三个数组:a[][] 行表示人 、列表示礼物、如果a[原创 2016-01-07 19:36:41 · 287 阅读 · 0 评论 -
Prim Dijkstra 区别
转载 2016-01-27 15:26:07 · 369 阅读 · 0 评论 -
什么时候用DFS,什么时候用BFS?
什么时候用DFS,什么时候用BFS?二维数组的题目,N小于20的,适用DFS。而一般N,N这种,一定不可能用DFS去做。而且并不只是整个题目不能用DFS,其中的每一步也不能使用DFS。BFS的基本步骤1.将初始点(一个或多个)加入一个集合尾2.从集合头取出点,判断初始点的周边点,将符合条件的点加入队列转载 2016-06-27 18:08:55 · 4991 阅读 · 4 评论 -
DFS算法
voiddfs (int step){判断边界尝试每一种可能for (i = 1;i < n;i++){ book[i]==1; //处理前标记下一个节点 继续下一步dfs (step+1); book[i]==0; //还原处理过的节点,以进行下一次尝试}返原创 2016-07-21 10:33:51 · 330 阅读 · 0 评论