算法查找学习笔记
2013-05-04 09:19
253 查看
一.如果在一个没排好序数据中查找就用普通查找就是用循环语句
在排好序的数据查找
一.二分法查找
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来指向新分配的节点
程序可以参考:
http://blog.csdn.net/feixiaoxing/article/details/6844723
在排好序的数据查找
一.二分法查找
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来指向新分配的节点
程序可以参考:
http://blog.csdn.net/feixiaoxing/article/details/6844723
相关文章推荐
- #数据结构与算法学习笔记#剑指Offer1:二维数组中的查找(JAVA)
- 算法(第4版) 学习笔记二——二分查找的普通实现与递归实现
- #数据结构与算法学习笔记#剑指Offer1.5:二维数组中的查找(C++)
- 算法第4版(谢路云译)学习笔记(4) -- 二分法查找算法的分析解释
- 【iOS学习笔记】iOS算法(五)之折半查找
- 算法学习笔记18-查找
- 二分法查找(折半查找)算法学习笔记
- 算法学习笔记之二分查找函数
- 算法(第四版)学习笔记之二分查找的递归与非递归java实现
- 二分法查找(折半查找)算法学习笔记
- Java二分查找算法学习笔记。
- 学习笔记---排序与查找的算法
- |算法讨论|二分查找 学习笔记
- 【算法学习笔记】22.算法设计初步 二分查找 上下界判断
- 算法学习笔记之二分查找函数
- [学习笔记]排序算法之 二分法查找
- 【算法学习笔记】22.算法设计初步 二分查找 上下界判断
- 【C++ Primer 学习笔记】: 容器和算法之【顺序容器】
- [算法学习笔记] AVL树----带有平衡条件的二叉搜索树
- ZooKeeper源码学习笔记(4)--集群选主算法