学习算法(1)——2分查找法

    xiaoxiao2021-03-25  131

    从今天起,开始阅读《算法,第四版》

    今天学习的是二分查找法,发现一个问题,就是当数组作为参数的时候,sizeof已经没有办法算出数组的长度了,因为此时数组名已经退化成指针了,所以只好新增一个参数,就是数组长度。

    代码如下:

    #include <iostream> using 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(); }

    -------------

    转载请注明原文地址: https://ju.6miu.com/read-7256.html

    最新回复(0)