查找算法
一、顺序查找
1、查找条件
有序或无序数组
2、算法描述
按顺序依次比较每个关键字,直到查到为止。
3、平均时间复杂度
O(n)
二、折半查找
1、查找条件
有序
2、算法描述
假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较,如果当前位置arr[k]值等于key,则查找成功;若key小于当前位置值arr[k],则在数列的前半段中查找,arr[low,mid-1];若key大于当前位置值arr[k],则在数列的后半段中继续查找arr[mid+1,high],直到找到为止
3、平均时间复杂度
O(log2(n))
三、二叉排序树查找
1、查找条件
二查排序树
2、算法描述
若b是空树,则搜索失败,若x等于b的根节点的数据域之值,则查找成功;若x小于b的根节点的数据域之值,则搜索左子树反之查找右子树。
3、平均时间复杂度
O(log2(n))
四、哈希查找
1、查找条件
哈希表
2、算法描述
根据键值方式(Key value)进行查找,通过散列函数,定位数据元素。
3、平均时间复杂度
O(1)