- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 汉诺塔
void move(char a,char b){ cout}void hano(char a,char b,char c,int n){ if(n==1) { move(a,c); return ; } hano(a,c,b,n-1); move(a,c); hano(b,a,c,n-1); }
2009-02-22 14:26:00
467
原创 输出字符串中某个字串出现的次数
int substrcnt(char *str1,char *str2){ if(*str2==0||*str1==0) return 0; int cnt=0; char *s2=str2,*s1=str1; while(*s1!=0) { while(*s2!=0&&*s1==*s2) { ++s1;++s2; } if(*s2==0) ++cnt; if(s2==str2
2009-02-20 19:11:00
567
原创 回溯法解装载问题
递归解法#includeusing namespace std;int bestw=0;int cw=0;int num=3;int r=46;int bestx[3];void load(int *w,int c,int n,int *x){ if(n>=num) { if(cw>bestw) { for(int i=0;i { bestx[i]=x[i]; bestw=c
2008-12-26 00:11:00
956
原创 BST二叉搜索树的实现
编译环境:vc++6.0 #include using namespace std;templateclass BST;templateclass node{ friend void Iterator( node* r); friend class BST;private: T data; node *lp,*rp; //左右孩子指针pub
2008-12-24 12:49:00
791
原创 动态规划解0-1背包问题
int min(int a,int b){ return a}int max(int a,int b){ return a>b?a:b;}void knap(int *w,int *v,int **m,int n,int c){ int mm=min(w[n-1]-1,c); for(int i=0;i m[n-1][i]=0; for(int j=w[n-1];j m[n-1][j]=v[
2008-12-21 21:38:00
509
原创 用链表实现的队列
只实现了主要函数#include#includeusing namespace std;template class Queue;template class node{ friend class Queue;private: T data; node *link;public: node(T d,node *l=NULL):data(d),link(l){}};templatec
2008-12-21 14:53:00
410
原创 利用循环数组实现的队列
#include#includeusing namespace std;template class Queue{private: int maxsize; T *a; int front,rear;public: Queue(int s=0):maxsize(s){a=new T[maxsize],front=rear=0;} void EnQue(const T& x) { asser
2008-12-21 14:48:00
446
原创 链表实现的栈
实现了主要函数 编译环境 visual stdio2005 #include#includeusing namespace std;template class stack;template class node{ friend class stack;private: T data; node *link;public: node(T d=0,node *l=NULL):data(d
2008-12-21 14:46:00
389
原创 选择排序( 稳定)
void SelectSort(int a[],int n){ int k,min; for(int i=0;i { min=a[i]; for(int j=i+1;j { if(a[j] { min=a[j]; k=j; } } a[k]=a[i]; a[i]=min; }}
2008-12-21 14:44:00
453
原创 希尔排序(不稳定)
void ShellSort(int a[],int n){ for(int len=n/2;len>0;len/=2) { for(int i=len;i { int j=i,temp; while(j>0&&a[j] { temp=a[j-1]; a[j-1]=a[j]; a[j]=temp; j-=len; } } }}
2008-12-21 14:42:00
833
原创 直接插入排序(稳定)
templatevoid InsertSort(T a[],int n){ T temp; for(int i=1;i { for(int j=i;j>0&&a[j] { temp=a[j-1]; a[j-1]=a[j]; a[j]=temp; } }}
2008-12-21 14:41:00
547
原创 回文数问题
void main(){ char a[50]; cin>>a; int len=strlen(a);int i=0,j=len-1; for(;i if(a[i]!=a[j]) break; cout=j?"yes":"not");}
2008-12-21 14:35:00
648
原创 备忘录方法与动态规划比较
动态规划算法的基本要素: 1 最优子结构性质当问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。2 重叠子问题性质 动态规划算法对每个问题只解一次,将其解保存在一个表格中,当再次需要解此问题时,用常数时间查看一下结果。因此,用动态规划算法通常只需要多项式时间。备忘录方法:•用一个表格来保存已解决的子问题的答案,用的时候查表即可。 •采用的递归方式是自顶向下。•控制结构
2008-12-21 14:00:00
11042
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人