一.如果在一个没排好序数据中查找就用普通查找就是用循环语句
在排好序的数据查找
一.二分法查找
1.在程序中首先找到中间元素
当大于中间元素时
开始位置=中间位置+1
当小于中间元素时
结束位置=中间位置-1
一直查找到开始位置大于结束位置
二叉树查找
5
6 4
8 7 3 2
估计二叉是像上面那样的。所以当大于是往左边查找,小于往右边查找
hash查找
hash存储是 index = data % mod; (这是自己定义的hash函数),index为下标存储进去的。所以查找也是根据hash函数找到index的
hash冲突问题:
1.可以用双个hash函数。
2. 线性探测法
位置 1 2 3 4 5 6 7 8 9
数据65 28 98 78
比如要插入30到1位置,原来1位置有数据了冲突了,则就往下查找直到没数据的比如5位置
3.链接法
struct hash
{
int data;
struct hash *p
}
当冲突了就再分配一个节点出来用p来指向新分配的节点
程序可以参考:
来源:CSDN
作者:4M小水管
链接:https://blog.csdn.net/ap105638/article/details/8882663