wq294948004 发表于 2013-1-26 12:34:41

二分查找

讲解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]
查看完整版本: 二分查找