常见的查找算法

常见的查找算法基本可分为三类:静态查找,树形查找和哈希查找。

静态查找

静态查找可以分为三种,最简单的就是顺序查找,可以选择从后往前也可以选择从前往后进行查找。时间复杂度在1-n之间;
其次就是二分查找,二分查找要求是对一个有序的数据结构进行查找,查询复杂度在logn;
最后就是分块查找,也可以称为索引查找,查找介乎与顺序查找和二分查找之间。通过将数据划分为若干的块,每个块内的数据不必有序,但是块与块之间的数据必须保证有序,同时为所有的块建立一个索引表,通过索引表查的数据在哪个块中,然后再在块内顺序查找

树形查找

树形查找有几种不同的方式,首先是二叉查找树,左子树的任意节点小于父节点的值,右子树的值大于父节点的值,可以递归进行查找,时间复杂度在logn和n之间;
其次是B-树和B+树,平衡二叉树,红黑树等,基本上时间复杂度也在logn。

哈希查找

哈希查找是通过对待查数据取得关键字key,按照某种对应关系或者称为哈希函数的运算,获得该数据存储的位置信息。
哈希查找不可避免会出现冲突,即通过哈希函数得到的地址值不是希望查找的数据。这是由于哈希函数只是一个压缩镜像。因此伴随着哈希查找会要求一个冲突解决办法。
常见的哈希函数有:直接定值法,平方取中法,折叠法等;处理冲突有线性探测再散列,二次探测再散列,随机探测再散列等,或者是通过链地址法。

常见查找算法的详细介绍及代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值