|
|
讲解if-else语句,就以二分查找举例,实在给力。
/* find x in v[0] <= v[1] <= ... <= v[n-1] */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[mid])high = mid - 1;else if (x > v[mid])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[mid])high = mid;elselow = mid + 1;}return (x == v[low]) ? low : -1;}
摘自《The C Programming Language》 Chapter 3 |
|