算法查找学习笔记

倖福魔咒の 提交于 2019-11-29 16:31:03

一.如果在一个没排好序数据中查找就用普通查找就是用循环语句

 

在排好序的数据查找

一.二分法查找

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!