算法查找学习笔记

来源:互联网 发布:o2o源码开发 编辑:程序博客网 时间:2024/05/24 15:40

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

 

在排好序的数据查找

一.二分法查找

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

原创粉丝点击