查找算法
目录 折半查找 线性索引查找 折半查找 折半查找又称为二分查找,它的前提是记录的关键码有序,线性表必须采用顺序存储。折半查找的思想是:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成功,或所有查找区域无记录,查找失败为止。 假设我们现在有这样-一个 有序表数组{0,1,16,24,35,47,59,62,73,88,99}16,除0下标外共10个数字。对它进行查找是否存在62这个数。我们来看折半查找的算法是如何工作的。 int Binary_Search(int *a, int n, int key) { int low, high, mid; low = 0; /*定义最低下标为记录首位*/ high = n; /*定义最高下标为记录末位*/ while (low <= high) { mid = (low + high) / 2; /*折半*/ if (key < a[mid]) /*若查找值比中值小*/ { high = mid - 1; /*最高下标调整到中位下标小一位*/ } else if (key > a[mid]) /*若查找值比中值大*/ { low - mid + 1; /