- /*************二分查找之数组版本******************
- 参数说明:
- int* t : 待查找数组的指针
- int n : 该数组的大小
- int x : 需要查找的数据
- 返回值说明:
- NULL : 没有找到
- 其他 : 返回找到对应数据位置
- 备注:
- 查找前提是待查找的数据是已经排好序
- **************************************************/
- int* BinSearch(int* t, int n, int x)
- {
- int low = 0;
- int hig = n;
- while (low < hig)
- {
- int mid = (hig + low)/2;
- if (x < t[mid])
- {
- hig = mid;
- }
- else if
- {
- low = mid + 1;
- }
- else
- {
- return t+mid;
- }
- }
- return NULL;
- }
- /****************指针版本****************/
- int* BinSearch(int* t, int n, int x)
- {
- int* low = t;
- int* hig = t + n;
- while (low < hig)
- {
- int* mid = low + ((hig - low)>>1);
- if (x < *mid)
- {
- hig = mid;
- }
- else if
- {
- low = mid + 1;
- }
- else
- {
- return mid;
- }
- }
- return NULL;
- }
二分查找 数组和指针方法
最新推荐文章于 2023-03-02 16:41:42 发布