学习算法导论
文章平均质量分 79
old_imp
比较异想天开
展开
-
插入排序
从简单的开始吧。 从大到小插入排序#includeint a[10] = { 23,423,54,45,54,534,65,132,435,756 };void InsertionSort( int [], int );int main(void){ int length = sizeof(a)/sizeof(int); InsertionSort( a, l原创 2010-04-16 21:47:00 · 414 阅读 · 0 评论 -
merge-sort(合并排序)
<br />#ifndef _MERGE_H_#define _MERGE_H_template< class T >void merge( T* lpFinal, int iStart, int iMid, int iEnd ){ int n1 = iMid - iStart + 1; int n2 = iEnd - iMid; T * lpFore = new T[ n1 ]; T * lpRear = new T[ n2 ]; //拆分出的子数组 for(原创 2010-08-16 16:03:00 · 649 阅读 · 0 评论 -
recursion-insert-sort( 插入排序的递归实现 )
<br />#ifndef _RECURSIONINSERT_H_#define _RECURSIONINSERT_H_template< class T >void recursioninsert( T * lpFinal, int index ){ T r = lpFinal[ index ]; int i = index - 1; while( ( i >= 0 ) && ( r < lpFinal[ i ] ) ) { lpFinal[ i + 1 ] =原创 2010-08-16 21:15:00 · 700 阅读 · 0 评论 -
当且仅当的解释
<br /><br />当且仅当,台湾称作若且唯若,港澳称作当且仅当,在数学、哲学、逻辑学以及其他一些技术性领域中被用来表示“在,并且仅仅在这些条件成立的时候”的缩写,在英语中的对应标记为Iff。虽然“P当且仅当Q”是一个标准用法,但是公认的其他同样说法还有“P是Q的充分必要条件(或称为充要条件)”,或者“P成立,正当Q”。<br />一般而言,当我们看到“A当且仅当B”,我们可以知道“如果A成立时,则B一定成立”而且“如果B成立时,则A也一定成立”。转载 2010-08-18 18:36:00 · 2310 阅读 · 0 评论 -
binary-search( 二分查找 )
<br />#ifndef _BINARYSEARCH_H_#define _BINARYSEARCH_H_template< class T >int binarysearch( T * lpArr, const T & v, int num ){ //lpArr指向从小到大排列的数组 int iStart = 0; int iEnd = num - 1; int iMid = 0; if( ( v > lpArr[ iEnd ] ) || ( v < lpArr[原创 2010-08-17 11:55:00 · 442 阅读 · 0 评论 -
改进合并排序法以查找元素序列中的逆序对数量,最坏运行时间O( nlog2(n) )
<br />修改之前写的合并排序法而得来的算法,用来查找元素序列中的逆序对数量,最坏运行时间O( nlog2(n) )<br /> <br />对于如本例中的完全逆序序列,计算出的逆序数的数量应为 ( n( n - 1 )) / 2个<br /> <br />#ifndef _INVERSECOUNTMERGE_H_#define _INVERSECOUNTMERGE_H_template< class T >int inversecountmerge( T* lpFinal, int iS原创 2010-08-18 13:58:00 · 919 阅读 · 0 评论 -
循环不变式
<br />循环不变式:在循环中保持不变的一个性质。<br />比如:插入排序算法中每次外层迭代( 循环 )开始时,第1个元素~当前要排序的元素的前一个元素组成的子数组都是已经排好序的(这是一个性质)。<br />一个循环中可以有若干个循环不变式。原创 2010-08-18 14:11:00 · 516 阅读 · 0 评论