算法
越甲八千
置身其中,全力以赴
展开
-
二维数组附近遍历所有值
二维数组附近遍历所有值原创 2023-12-09 11:35:23 · 100 阅读 · 0 评论 -
Hanoi塔递归实现
Hanoi规则不在赘述;直接上代码;#include<iostream> using namespace std;//移动最后一个 void Move(char a, char b) { cout<<a<<"-->"<<b<<endl; }//a借助c放到b n个 void Hanoi(int n,char a,char b,char c) { if(n<=0)//控制参数正确传入原创 2016-08-09 16:25:24 · 1074 阅读 · 0 评论 -
递归全排列
#include<iostream> using namespace std;void Swap(int *a, int *b) { int tep = *a; *a = *b; *b = tep; } bool Isswap(int arr[], int beg, int end) { for(int i=beg;i<end;++i) { i原创 2016-09-23 10:40:30 · 1159 阅读 · 0 评论 -
KMP算法
其实KMP算法最重要的是获得next[]数组的值,而next的只代表当字符不匹配时指向子串的指针应该回退到的地方, 他的值就是前缀字符串和后最字符串相等的最大的串的长度 abab前缀子串a;ab;abc;后缀子串b;ab;bab;所以到第2个b最大的相等的前后缀子串是2;以abcabaa为例子; a b c a b a a 0 0 0 1 2 1 1 然后把原创 2016-09-29 21:17:51 · 1083 阅读 · 0 评论 -
非递归全排列
非递归全排列无非就是根据一个排列找到下一个; 以1 2 3 4 为例子; 1:先把给定的字符串排序(于小到大); 2:从后到前找到第一个相邻的递增对;例如:1 2 4 3 找到2 4 递增 于是得到4的下标2;如果没有找到,说明已经全排列好了;直接退出; 3:然后从后向前找到第一个比 2 大的值, 即 3; 4:交换2 3;—->1 3 4 2; 5:在从4(第2不的得到的4 下标)原创 2016-08-13 13:09:37 · 1175 阅读 · 0 评论 -
斐波那契数列
#include<iostream> using namespace std;//递归方法 int Fbnq(int val) { if(val <1) { exit(-1); } if(val==2 || val ==1) { return 1; } else { return Fbnq(原创 2016-08-08 17:20:26 · 999 阅读 · 0 评论