[关闭]
@haoqiang 2018-03-01T12:52:30.000000Z 字数 258 阅读 35

查找

算法


二分查找
时间复杂度O(logn)

  1. int binarysearch(int num[], int x, int N) {
  2. int low = 0, high = N;
  3. int mid;
  4. while(low < high) {
  5. mid = (low + high) >> 1;
  6. if (x < num[mid])
  7. high = mid;
  8. else if (x > num[mid])
  9. low = mid+1;
  10. else
  11. return mid;
  12. }
  13. return -1;
  14. }

插值查找
时间复杂度O(logn)

  1. mid = low+(high-low)*(x-num[low])/(num[high]-num[low]);
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注