快速排序是一种平均性能很好的算法,它的期望运行时间是O(nlgn),且其中隐藏的常数因子非常小。但是它的最坏运行时间是O(n^2)。最后我会对其进行分析。快速排序关键部分分为两部分:
1.数组划分过程:
将一个数组以其最后一个元素作为主元,并且围绕它来划分数组,使得在此元素之前的数组元素均小于它,在其后的数组元素均大于它,划分过程如下:
实现代码如下:
int Partition(...
分类:
编程语言 时间:
2014-08-28 22:49:46
阅读次数:
390
导弹拦截是一个经典问题:求一个序列的最长不上升子序列,以及求能最少划分成几组不上升子序列。第一问是经典动态规划,第二问直接的方法是最小路径覆盖, 但是二分图匹配的复杂度较高,我们可以将其转化成求最长上升子序列,其最大值即等于不上升子序列的最小划分数。这就涉及到组合数学中偏序集的 Dilworth定理...
分类:
其他好文 时间:
2014-08-26 19:31:46
阅读次数:
273
表空间: oracle允许不同类型的数据分开存放,表空间是数据库的逻辑划分。 数据文件: 表空间由同一磁盘上的一个或多个文件组成,这些文件叫做数据文件。实例: 是存放和控制数据库的软件机制。oracle启动实例时,需要读取init.ora文件。oracle有一个物理结构、一个逻辑结构。物理结构...
分类:
数据库 时间:
2014-07-31 16:25:36
阅读次数:
242
DP不仅广泛用于各种最优化问题,也常常用于排列组合的个数、概率期望计算等等,因为这些问题往往具有很好的“ 重叠子问题”特性,这些问题往往都起源于排列组合中的组合公式A(n, k) = A(n-1, k) + A(n-1, k-1)
例一:求解划分数
有n个无差别的物品,将他们划分成不超过m组,求划分方法数除以M的余数。
分析:dp[i][j]j的i划分的总数
dp[i][j] = ...
分类:
其他好文 时间:
2014-07-21 15:48:06
阅读次数:
268
划分数 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 有n个无区别的物品, 将它们划分成不超过m组, 求出划分方法数模M的余数.例如: n=4的m=3个划分, result=4(1,1,2; 1,3; 2,2; 4)使用动态规划(DP)方法, n的m划分a, 如果每个i都有a, {a-1}的集合就是n-m的m划分; a=0时, 就是n的m-1划...
分类:
其他好文 时间:
2014-07-21 11:14:04
阅读次数:
198
题目链接:uva 10581 - Partitioning
for fun and profit
题目大意:给定m,n,k,将m分解成n份,然后按照每份的个数排定字典序,并且划分时要求ai?1≤ai,然后输出字典序排在k位的划分方法。
解题思路:因为有ai?1≤ai的条件,所以先记忆化搜索处理出组合情况dp[i][j][s]表示第i位为j,并且剩余的未划分数为s的总数为dp[i][...
分类:
其他好文 时间:
2014-07-05 23:56:30
阅读次数:
464
(转载请注明出处:http://blog.csdn.net/buptgshengod)1.背景 决策书算法是一种逼近离散数值的分类算法,思路比較简单,并且准确率较高。国际权威的学术组织,数据挖掘国际会议ICDM (the IEEE International Conference on Da...
分类:
编程语言 时间:
2014-06-26 22:33:33
阅读次数:
410
题目:For example, given s = "aab",
Return 1 since the palindrome partitioning ["aa","b"] could be produced using 1 cut
解题思路:给一个字符串,如果字符串可以划分成若干子回文字符串,返回最小的划分数量。
这个题如果还用之前求所有划分组合的循环加递归方法的话,就会得到超时的错误。这是就要考虑别的方法,动态规划倒是一个不错的方法,但是动态规划最重要的是要找到动态方程。本题的动态方程:
dp[i] =...
分类:
其他好文 时间:
2014-06-08 14:56:58
阅读次数:
257
整数划分问题
时间限制(普通/Java):5000MS/10000MS 运行内存限制:65536KByte
总提交:235 测试通过:158
描述
将一个正整数n表示成一系列正整数之和,n=n1+ n2+…+ nk(其中,n1≥n2≥…≥nk≥1,k≥1).正整数n的这种表示称为正整数n的划分。正整数n的不同的划分个数称为正整数n的划分数,记...
分类:
其他好文 时间:
2014-06-07 13:04:49
阅读次数:
226
(转载请注明出处:http://blog.csdn.net/buptgshengod)1.背景
接着上一节说,没看到请先看一下上一节关于数据集的划分数据集划分。如今我们得到了每一个特征值得信息熵增益,我们依照信息熵增益的从大到校的顺序,安排排列为二叉树的节点。数据集和二叉树的图见下。(二叉树的图是....
分类:
编程语言 时间:
2014-06-03 07:23:48
阅读次数:
325