本文共 689 字,大约阅读时间需要 2 分钟。
从今天起,开始阅读《算法,第四版》
今天学习的是二分查找法,发现一个问题,就是当数组作为参数的时候,sizeof已经没有办法算出数组的长度了,因为此时数组名已经退化成指针了,所以只好新增一个参数,就是数组长度。
代码如下:
#includeusing namespace std;int Search(int data[], int length, int key){ int lo = 0; int hi = length - 1; while (lo <= hi) { int mid = lo + (hi - lo)/2; if (key < data[mid]) { hi = mid - 1; } else if (key > data[mid]) { lo = mid + 1; } else { return mid; } } return -1;}int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); int data[10] = {0}; for (int i=0; i<10; ++i) { data[i] = i; } cout << Search(data, 10, 0); return a.exec();}
-------------
转载地址:http://dkoji.baihongyu.com/