摘要: 最长回文串:引用地址:http://www.ituring.com.cn/article/57155分析建一个二维表,设定P[i][j]:1. 为true时,表示str[i..j]为回文2. 为false时,表示str[i..j]不是回文则,当:1. i==j时,P[i][j]=true2. j==... 阅读全文
posted @ 2014-09-10 20:41 liuzhiminxd 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 引用网址:http://www.ituring.com.cn/article/60247例如:1. ab最少插入1个字符,变为*b*ab2. aa最少插入0个字符3. abcd最少插入3个字符,*dcb*abcd分析:1. 如果str[0]==str[n-1],则问题转变为求str[1,n-2],插... 阅读全文
posted @ 2014-09-10 17:24 liuzhiminxd 阅读(1953) 评论(0) 推荐(0) 编辑
摘要: 1 //一直待排序列的范围是0~bound-1,所以辅助数组C的大小为bound;时间复杂度O(n) 2 int* countSort(int A[],int n,int bound){ 3 int* B=new int[n]; 4 int* C=new int[bound]; 5... 阅读全文
posted @ 2014-09-10 16:18 liuzhiminxd 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 1 //大顶堆调整O(log n) 2 void maxHeapify(int A[],int heapSize,int i){ 3 int lChild=2*i; 4 int rChild=2*i+1; 5 int largest=i; 6 if(lChildA[... 阅读全文
posted @ 2014-09-10 15:41 liuzhiminxd 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 归并排序O(n log n) 1 void merge(int A[],int p,int r,int q){ 2 int n1=r-p+1; 3 int n2=q-r; 4 int* L=new int[n1]; 5 int* R=new int[n2]; 6 ... 阅读全文
posted @ 2014-09-10 15:05 liuzhiminxd 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 快排 1 int partition(int A[],int n,int p,int q){ 2 int i=p; 3 for(int j=p+1;j<=q;j++){ 4 if(A[j]<=A[p]){ 5 i++; 6 ... 阅读全文
posted @ 2014-09-10 11:55 liuzhiminxd 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 方法一:Knuth时间复杂度O(n)1 void genknuth(int m,int n){2 for(int i=0;i s;3 while(s.size()::iterator i=s.begin();i!=s.end();i++)6 cout<<*i<<end... 阅读全文
posted @ 2014-09-09 20:36 liuzhiminxd 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 单例模式Singleton:确保系统中一个类只有一个实例 (1)对于频繁使用的对象,可省略创建对象所花费的时间 (2)new次数减少,降低GC压力 阅读全文
posted @ 2014-09-07 17:49 liuzhiminxd 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 1 /*重写Java String类的equals()方法*/ 2 public boolean equals(Object anObject){ 3 if(this==anObject){ 4 return true; 5 } 6 if(anObject ... 阅读全文
posted @ 2014-09-07 17:08 liuzhiminxd 阅读(612) 评论(0) 推荐(0) 编辑