【Note】算法初步
文章平均质量分 54
Thereisnospon
在校本科生,渣渣一枚,正在向成为一名大牛而努力~
展开
-
KMP模式匹配
看了半天,还是糊里糊涂,先放这,回过头再看 #include #include //求解next[]简化版本 void getnext(char p[],int next[]) { int i=0,j=-1,len=strlen(p); next[0]=-1; while(i<len){ if(j==-1||p[i]==p[j]){原创 2015-01-30 22:46:08 · 380 阅读 · 0 评论 -
中点优先顺序遍历数组-递归非递归实现
递归实现 #include #define MAX 100 void print(int p[],int left,int right) { if(left<=right) { int mid=(left+right)/2; printf("%d\n",p[mid]); print(p,left,mid-1); pr原创 2015-02-02 15:53:10 · 1103 阅读 · 0 评论 -
简单背包问题-递归非递归实现
递归实现 #include #define MAX 100 int w[MAX]={0,1,2,3,4,5}; int ans(int s,int m) { int s1,b,i; if(s==0)return 1; else if(s<w[0]||m<0)return 0; else { for(i=m;i>=0;i--)原创 2015-02-02 15:55:22 · 2101 阅读 · 0 评论 -
八皇后问题
#include int map[8][8]={0},z=0; void output()//打印一个棋盘 { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) printf("[%d]",map[i][j]); printf("\n"); } printf("\原创 2015-02-02 20:03:29 · 293 阅读 · 0 评论 -
全排列
#include #include using namespace std; int a[1024],n; int main() { while(cin>>n){ for(int i=0;i<n;i++) a[i]=i; do { for(int i=0;i<n;i++)原创 2016-03-19 16:00:18 · 272 阅读 · 0 评论 -
快速幂||矩阵快速幂
快速幂: 点击打开链接 #include using namespace std; #define LL long long #define MAX 99999999999 LL fastPower(LL num,LL n){ LL ret=1; while(n){ if(n&1) ret=(ret*num)%MAX;原创 2016-03-19 17:01:18 · 378 阅读 · 0 评论 -
基础算法-冒泡排序
冒泡排序: 思想:数组分为左右两部分,无序区,和有序区,开始数全在无序区,有序区长度为0从无序区开始位置到无序区结束位置遍历,相邻的两个数相互比较,如果当前的数比它后面的数大,那么就交换他们的位置,这样第一遍后,就将最大的数放到了无序区最后面的位置,此时也就是数组的最后面,现在有序区有一个数,然后第二遍遍历则把无序区剩下的数的最大值交换到了此时无序区最后面的位置,也就是数组的倒数第二个位置,这样原创 2016-04-20 10:53:10 · 371 阅读 · 0 评论