摘要:
int b[MAXM]=zero;//根据需要改charint a[MAXN]=zero;int next[MAXM];void GetNext(int len)//得到b的next{ int i,j; for(i=1,j=0;i<=len;) { if(j==0||b[i-1]==b[j-1]) { next[i]=j; j++; i++; } else { j=next[j]; } }}int kmp(int lena,int lenb){ int i,j; for(i=0,j=0;i<lena;) { if(j==0||a[i]==b[j]) { if(a[i]!=b[j]. 阅读全文
摘要:
在性能优化方面永远注意80-20原则,即20%的程序消耗了80%的运行时间,因而我们要改进效率,最主要是考虑改进那20%的代码。不要优化程序中开销不大的那80%,这是劳而无功的。第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值:方法A:通常的办法#define LEN 32char string1 [LEN];memset (string1,0,LEN);strcpy (string1,"This is a example!!");方法B:cons 阅读全文