摘要:
假定有这样一组数列{ 10, 33, 2, 4, 55, 6, 12, 34, 456, 66, 43, 23, 65, 1, 345, 61, 76, 31, 43, 76 };如和求出最小的k个值,或最大的k个值?借鉴快速排序算法,下面是本科教材《数据结构》中的快速排序: 1 void QuickSort ( int A[ ], int head, int rear ) 2 { 3 int pivot; 4 if( head < rear ) // 肯定为真的条件 5 { 6 pivot = Partition ( A, head, rear ); 7 Qui... 阅读全文
2012年4月4日
摘要:
(回溯算法) 1 typedef struct BiTNode 2 { 3 int data; 4 BiTNode * lchild; 5 BiTNode * rchild; 6 }BiTNode, * BiTree; 7 8 void Function( BiTree T, int sum ) 9 {10 int path[ MAXSIZE ];11 FindPath( T, sum, path, 0 );12 }13 14 void FindPath( BiTree P, int sum, int path[], int top )15 {16 if( p )17... 阅读全文
摘要:
(源自算法分析课件)长度为n的数组有n2个子序列,长度为n的序列求和时间复杂度为O(n),这样穷举求解的方法是与本题无关的,呵呵。 1 int maxSubSequenceSum( int a[ ], int n ) 2 { 3 maxSum = 0; 4 subSum = 0; 5 6 for ( j = 0; j<n; j++ ) // i 是subSum的起始位置,j 是subSum的结束位置 7 { 8 subSum += a[ j ]; /* subSum是从始至终一直在累加的,当为负时归0。 9 而maxSum就是整... 阅读全文
摘要:
1 #define STACK_LEN 50 2 3 typedef struct 4 { 5 int data; 6 7 int min; 8 } StackItem; 9 10 typedef struct 11 { 12 StackItem data[ STACK_LEN ]; 13 int top; 14 } Stack; 15 16 void push( stack *S, int val ) 17 { 18 S->data[ S->top ].data = va... 阅读全文
摘要:
1.中序线索二叉树算法,源自本科教材《数据结构》typedef struct ThreadTNode{ elemtype data; struct ThreadTNode *lchild, *rchild; int ltag, rchild;}ThreadTNode, *ThreadTree void CreateInThread ( ThreadTree T ){ ThreadTree pre = NULL; if( T != NULl ) { InThread( T, pre ); pre->rchild = NULL; pre->rtag ... 阅读全文
2012年4月3日
摘要:
( 源自:百度知道。 我承认,我对这个设计非常非常欣赏,尤其是else while 的设计,很好的体现了后序遍历的特点) 1 void PostOrder( BiTree T) 2 { 3 InitStack( S );//初始化栈 4 BiTree p = T; // 遍历指针、入口地址 5 unsigned sign;//记录结点从栈中弹出的次数 6 7 while( p || !IsEmpty( S ) ) 8 { 9 if( p )10 {11 Push( p ); //第一次遇到结点T... 阅读全文
2012年3月30日
摘要:
Let(设)fbe a function with a positive second derivative(二阶导数). Such a function is called “convex"(凸的,注意是向下凸,向上凹,如 x2 ) and satisfies theinequality (1)inequation(1) relates a function of an average to an average of the function. The average can be weighted, for example,(2)Figure1is a graphical in 阅读全文
2012年3月29日
摘要:
(源自:维基百科)最大似然估计的原理:给定一个概率分布,假定其概率密度函数(连续分布)或概率聚集函数(离散分布)为,以及一个分布参数,我们可以从这个分布中抽出一个具有个值的采样,通过利用,我们就能计算出其概率:但是,我们可能不知道的值,尽管我们知道这些采样数据来自于分布。那么我们如何才能估计出呢?一个自然的想法是从这个分布中抽出一个具有个值的采样,然后用这些采样数据来估计.一旦我们获得,我们就能从中找到一个关于的估计。最大似然估计会寻找关于的最可能的值(即,在所有可能的取值中,寻找一个值使这个采样的“可能性”最大化)。这种方法正好同一些其他的估计方法不同,如的非偏估计,非偏估计未必会输出一个最 阅读全文
摘要:
(源自:维基百科)在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性。似然函数在统计推断中有重大作用,如在最大似然估计和费雪信息之中的应用等等。“似然性”与“或然性”或“概率”意思相近,都是指某种事件发生的可能性,但是在统计学中,“似然性”和“或然性”或“概率”又有明确的区分。概率用于在已知一些参数的情况下,预测接下来的观测所得到的结果,而似然性 则是用于在已知某些观测所得到的结果时,对有关事物的性质的参数进行估计。在这种意义上,似然函数可以理解为条件概率的逆反。在已知某个参数B时,事件A会发生的概率写作。利用贝叶斯定理,因此,我们可以反过来构造表示似然性的方法: 阅读全文
摘要:
PLSA (概率潜语义分析) 是基于 双模式 和 共现 的数据分析方法延伸的经典的统计学方法。概率潜语义分析 应用于信息检索,过滤,自然语言处理,文本的机器学习或者其他相关领域。概率潜语义分析 与 标准潜语义分析 的不同是,标准潜在语义分析是以 共现表(就是共现的矩阵)的奇异值分解的形式表现的,而概率潜在语义分析却是基于派生自 LCM 的混合矩阵分解。考虑到word和doc共现形式,概率潜语义分析 基于 多项式分布 和 条件分布 的混合来建模共现的概率。所谓 共现 其实就是 W和D 的一个矩阵,所谓 双模式 就是在 W和D 上同时进行考虑。PLSA的缺点:PLSA有时会出现过拟合的现象。所谓过 阅读全文