顺序查找
- 实现原理:从头到尾遍历这个序列,将自己需要查找的值与这个序列上的值一一对比
- 特点:简单好理解,易于实现
Java实现:
//顺序查找
public static boolean seqsearch(int[] arr, int key) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] == key) {
return true;
}
}
return false;
}
折半查找
- 实现前提:是基于有序序列的一种查找方式,若序列无序,则无法实现查找
- 实现原理:先将key值与序列中间的数据进行比较,若key值大于arr[mid] 则选择右半部分,舍弃左半部分,依次进行,直到序列长度为1
Java实现:
//折半查找
public static boolean binsearch(int arr[], int key) {
int low = 0;
int hig = arr.length-1;
while(low <= hig) {
int mid = (low + hig) / 2;
//在左半部分
if(arr[mid] > key) {
hig = mid - 1;
}
//在右半部分
if(arr[mid] < key){
low = mid + 1;
}
//存在
if(arr[mid] == key) {
return true;
}
}
//不存在
return false;
}