- 博客(3)
- 收藏
- 关注
原创 动态规划
如果一个问题由交叠的子问题所构成,可以采用动态规划的方法进行求解。 交叠的子问题可以理解为要想求解当前问题必须知道前一问题的解,也就是问题之间不是相互独立的。 动态规划一般分为以下几步进行: 1.找出最优解性质,刻画其结构特征; 2.递归定义最优解,写出动态规划方程; 3.以自底向上的方式计算出最优解; 4.根据计算得到的信息,构造最优解。 下面有一个LCS(最长公共子序列)的例子。
2014-01-03 16:18:50 672
原创 归并排序
废话不说,直接上代码。 递归版本: #include template void swap(T *tmp1,T *tmp2); template void merge(T *tmp,int left,int right){ int i=left,mid=(left+right)/2,k=0; int j = mid+1; T *s; s = (T *)malloc((right-
2014-01-03 09:47:57 497
原创 快速排序
快速排序的思想在于将每个数归位于自己应该在的位置。 递归版本: #include void swapp(int &tmp1,int &tmp2); int partition(int *tmp,int left,int right) ; void quicksort(int *tmp,int left,int right){ if(left<right){ int pos = parti
2014-01-02 10:09:49 545
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人