DSA
qq_36813793
这个作者很懒,什么都没留下…
展开
-
LCS-递归
#include <iostream>#include <algorithm>#include <string>using namespace std;string a, b;int LCS(int n, int m){ if (n == -1 || m == -1) return 0; if (a[n] == b[m]) ...原创 2018-04-14 21:53:01 · 515 阅读 · 0 评论 -
LCS-迭代
#include <iostream>#include <algorithm>#include <string>using namespace std;string a, b;int p[100][100];int LCS1(int n, int m){ //p[100][100] = { 0 }; memset(p, 0, 100)...原创 2018-04-15 13:00:02 · 352 阅读 · 0 评论 -
binSearch的三种形式
1.binSearch比较次数不平衡,一方比较次数比一方比较次数多1,所以可以有所改进,根据改进方向的不同,可以改进为fibonaccian查找(寻找比例的最优值)或者binSearch2(想办法平衡比较次数) 2.binSearch2次数平衡,但却不满足约定,为了满足约定,所以有了binSearch3 3.binSearch3看似有所遗漏,实则精巧,其正确性可以用不变性和单调性证明#...原创 2018-04-17 12:00:44 · 1331 阅读 · 0 评论 -
bubblesort的改进
#include <iostream>using namespace std;bool bubble2(int *a,int lo, int hi){ bool sorted = true; while (++lo<hi) if (a[lo - 1]>a[lo]){ sorted = false; swap(a[l...原创 2018-04-17 16:55:25 · 155 阅读 · 0 评论 -
01E-09: MAX2:二分递归
#include <iostream>#include <algorithm>using namespace std;void max2(int a[], int lo, int hi, int &x1, int &x2){ if (lo + 2 == hi){ if (a[lo] >= a[hi-1]){ ...原创 2018-04-12 12:46:15 · 525 阅读 · 1 评论 -
mergesort(递归分割+有序向量的排序)
#include <iostream>using namespace std;void merge(int *a, int lo, int mi, int hi){//有序向量的排序 int *A = a + lo; int lb = mi - lo; int *B = new int[lb]; for (int i = 0; i < lb; ...原创 2018-04-19 10:05:09 · 208 阅读 · 0 评论