数据库mysql索引:使用B树索引
下面介绍一下B树索引:
Lucene全文检索使用:二分查找
下面介绍一下二分查找:
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列;
1、时间复杂度:因为每次的查找都会比上一次少一半的范围,时间复杂度为O(log n).
2、二分法必须事先经过排序,且数据量必须直接在内存中执行
3、此法用于不需要增删的静态数据
简单举例
public class TestTwoSearch {
public static void main(String[] args) {
test1(4);
}
public static void test1(int qNum){
int l = 0;
int r = 100;
int mid = 0;
int idx = 0;
while (l < r) {
mid = (l + r) / 2;
if (qNum < mid) {
r = mid;
} else if (qNum == mid) {
System.out.println("目标" + qNum + "已经找到,查找了"+idx+"次");
break;
} else {
l = mid;
}
System.out.println("左边:" + l + "--中间:"+mid+"--右边:"+r);
idx++;
}
// }
}
}