二分查找
Posted wulei0630
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找相关的知识,希望对你有一定的参考价值。
1. 二分查找算法概述
二分查找是对一个有序数据集合所做的操作。超找开始时,首先找出有序集合中间的那个元素。如果此元素比要查找的元素大,就接着在较小的一半查找;反之,则在较大的一半查找。
2. 使用二分查找算法的必要条件
① 必须是有序集合
② 元素必须存储在连续的空间
3. 二分查找示例
int Bisearch(void* sorted, void* target, int size, int esize, int (*compare)(const void* key1, const void* key2)) { int left = 0; int right = size - 1; int middle = 0; while(left <= right) { middle = (left + right) / 2; switch(compare(((char*)sorted + (esize * middle)), target)) { case -1: left = middle + 1; break; case 1: right = middle - 1; break; case 0: return middle; } } return -1; }
以上是关于二分查找的主要内容,如果未能解决你的问题,请参考以下文章