Search
利用排序的方法实现满足不同条件的查找
本文主要介绍以下几种查找方法。
- 线性表的查找
- 二叉树的插入生成及查找
- B树的插入生成及查找
- 散列函数的构造及查找
1.线性表的查找
主要分为顺序查找,二分,分块三种。
顺序查找
二分查找
package search;
public class BinarySearch {
boolean binarySearch(int[] a,int value){
int left=0;
int right=a.length-1;
int middle;
while(left<right){
middle=(left+right)/2;
if(value<a[middle]){
right=middle-1;
}else if(value>a[middle]){
left=middle+1;
}else{
System.out.println(middle);
return true;
}
}
return false;
}
}
分块查找
2.二叉排序树
二分查找是适用于静态查找表。若要对动态查找表进行高效率的查找,最好使用二叉排序树。
代码:
http://www.cnblogs.com/skywang12345/p/3576452.html
3.B树
4.散列
碰撞处理方法:
- 开放地址
- 拉链
- 差值