- 博客(7)
- 收藏
- 关注
转载 当且仅当的解释
<br /><br />当且仅当,台湾称作若且唯若,港澳称作当且仅当,在数学、哲学、逻辑学以及其他一些技术性领域中被用来表示“在,并且仅仅在这些条件成立的时候”的缩写,在英语中的对应标记为Iff。虽然“P当且仅当Q”是一个标准用法,但是公认的其他同样说法还有“P是Q的充分必要条件(或称为充要条件)”,或者“P成立,正当Q”。<br />一般而言,当我们看到“A当且仅当B”,我们可以知道“如果A成立时,则B一定成立”而且“如果B成立时,则A也一定成立”。
2010-08-18 18:36:00 2153
原创 循环不变式
<br />循环不变式:在循环中保持不变的一个性质。<br />比如:插入排序算法中每次外层迭代( 循环 )开始时,第1个元素~当前要排序的元素的前一个元素组成的子数组都是已经排好序的(这是一个性质)。<br />一个循环中可以有若干个循环不变式。
2010-08-18 14:11:00 509
原创 改进合并排序法以查找元素序列中的逆序对数量,最坏运行时间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 911
原创 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 432
原创 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 694
原创 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 634
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人