看到这个http://news.csdn.net/a/20100423/218099.html,自己动手风衣足食,我是新手,呵呵。 二分查找,理解递归。 bool DivideFind(int a[],int nLeft,int nRight,int nV,int& nIndex) { // 二分查找,递归实现 // 数组a是已经排好序的,nV是要查找的值,nIndex是返回要查找值在数组中的索引 if(nLeft > nRight) return false; int nMid = (nLeft+nRight)/2; if( nV == a[nMid] ) nIndex = nMid; else if( nV < a[nMid] ) return DivideFind(a,nLeft,nMid-1,nV,nIndex); else return DivideFind(a,nMid+1,nRight,nV,nIndex); return true; }