1、查找算法:
在 大量的信息中 寻找 一个特定的信息元素;
2、种类:
a,顺序查找:
将 给定元素 与 数据中的每个元素 进行一一比较;
b,二分查找(Binary Search):
前提: 数据 顺序存储 且 有序;
public static int binarySearch(Integer[] srcArray, int des) { //定义初始最小、最大索引 int start = 0; int end = srcArray.length - 1; //确保不会出现重复查找,越界 while (start <= end) { //计算出中间索引值 int middle = (end + start)>>>1 ;//防止溢出 if (des == srcArray[middle]) { return middle; //判断下限 } else if (des < srcArray[middle]) { end = middle - 1; //判断上限 } else { start = middle + 1; } } //若没有,则返回-1 return -1; }
c,分块查找:
二分查找 与 顺序查找的优化;
前提: 各个块之间有序 ,块内元素 无排序要求;
适用情况:
节点动态变化的情况,当增加或减少节以及节点的关键码改变时,只需将该节点 调整到所在的块 即可;
原文:https://www.cnblogs.com/anpeiyong/p/12552056.html