【软考】【数据结构与算法】查找
2018-08-21 11:43
204 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hongtao_6/article/details/81904992
顺序查找
将待查找的关机子为key的元素从头到尾与表中元素进行比较,如果中间存在关键字为key的元素,则返回成功,否则查找失败。
平均查找长度为(n+1)/2
时间复杂度为O(n)
二分查找
前提条件:元素必须按顺序排列,从小到大或从大到小。
比较次数最多为log2 n +1 次
时间复杂度为O(log2 n)
用一道例题来看一下二分查找的主要思想:
整个序列已经是从小到大排列了,所以可以用二分查找。
首先确定查找区间是【1,12】,定low=1,high=12,mid = (low + high)/ 2 =6.5,取整为6,mid = 6,比较待查找关键字17与6对应的18,18>17,所以将high定为5进行第二次比较
第二次的查找区间为【1,5】,mid = 3 ,比较待查找关键字17与3对应的10,10<17,所以将low定位为4进行第三次比较
第三次的查找区间为【4,5】,mid = 4.5取整 = 4,比较带查找关键字17与4对应的16,16<17,所以将low定位为5,此时low=high=5,并且5对应的元素等于关键字17,查找结束。
注意:①mid计算时,若得到小数,应对小数进行取证操作,而不是四舍五入操作。
②比较后重新划分区间应不是mid对应的区间,而是mid±1对应的区间。
散列表
按内容存储的机制,其基本思想是:已知关键字集合U,最大关键字为m,设计一个函数Hash,它以关键字为自变量,关键字的存储地址为因变量,将关键字映射到一个有限的、地址连续的区间T【0……n-1】(n<
阅读更多相关文章推荐
- 【数据结构与算法之查找算法一】顺序查找
- 常用查找数据结构及算法
- 数据结构与算法_折半查找
- 【数据结构与算法】【查找】折半查找(二分查找)的代码实现
- 【数据结构与算法】动态查找--二叉排序树
- 数据结构与算法—斐波那契查找2
- 数据结构与算法------线性查找
- C 数据结构与算法 二分查找
- 详解常用查找数据结构及算法(Python实现)
- 【数据结构与算法】二分查找
- 数据结构算法学习-1. 查找(Search)概论与三种顺序查找算法
- pta-数据结构与算法题目集(中文)--4-4 链式表的按序号查找
- [备战软考]数据结构与算法基础
- #数据结构与算法学习笔记#剑指Offer1:二维数组中的查找(JAVA)
- 【数据结构与算法】二分查找递归非递归实现
- [数据结构与算法]哈希表(等概率情况下)查找成功与查找不成功的平均查找长度
- 数据结构与算法13:折半查找、差值查找和斐波那契查找
- 【数据结构与算法】二分查找
- 【数据结构与算法】【查找】基本概念
- 数据结构与算法-第八章 查找