二分查找
讲解if-else语句,就以二分查找举例,实在给力。/* find x in v <= v <= ... <= v */int binsearch(int x, int v[], int n){int low = 0;int high = n - 1;int mid;while (low <= high) {mid = (low + hight)/2;if (x < v)high = mid - 1;else if (x > v)low = mid + 1;elsereturn mid;}return -1;}/* Exercise 3-1 using only one test inside the loop */int binsearch(int x, int v[], int n){int low = 0;int high = n - 1;int mid;while (low < high) {mid = (low + high)/2;if (x <= v)high = mid;elselow = mid + 1;}return (x == v) ? low : -1;}
摘自《The C Programming Language》 Chapter 3
页:
[1]