数据结构和算法------查找
来源:互联网 发布:java将信息写入文件 编辑:程序博客网 时间:2024/05/16 12:02
1.顺序查找
数组是用连续地址存储元素数据的,a为指针,表示一块连续的地址,所以可以当数组地址来用,n为数组的个数即数组长度,key为存在a地址的数
i为查到key的相对于a起始地址的位置
int search(int *a, int n, int key)
{int i;
for(i = 0; i < n; i++)
{
if(a[i] == key)
{
return i;
}
}
return -1;
}
//有设置哨兵的顺序查找
int search2(int *a, int n, int key)
{
int i = n;
a[0] = key;//设置哨兵
while(a[i] != key)
{
--i;
}
return i;
}
3.二分法查找
int search3(int *a, int n, int key)
{
int low = 1;
int high = n;
int mid;
while(low <= high)
{
mid = (low + high)/2;
if(key < a[mid])
{
high = mid - 1;
}
else if (key > a[mid])
{
low = mid + 1;
}
else
{
return mid;
}
}
return 0;
}
4.插值二分查找
int search3(int *a, int n, int key)
{
int low = 1;
int high = n;
int mid;
while(low <= high)
{
mid = low + (high-low)(key-a[low])/(a[high]-a[low]);
if(key < a[mid])
{
high = mid - 1;
}
else if (key > a[mid])
{
low = mid + 1;
}
else
{
return mid;
}
}
return 0;
}
0 0
- 数据结构和算法------查找
- 数据结构中排序和查找的算法
- 浅谈算法和数据结构: 二叉查找树
- 算法和数据结构: 二叉查找树
- 算法漫谈-查找和排序及数据结构
- java数据结构和算法---基本查找排序
- 一步一步复习数据结构和算法基础-顺序查找+二分查找
- 数据结构回顾版-java数据结构-有序数组和查找算法
- C#数据结构和算法学习系列五----基础查找算法
- 数据结构和算法系列 - c语言线性查找算法
- 数据结构-----查找算法
- 数据结构-二分查找算法
- 数据结构-查找算法
- 查找算法数据结构总结
- 数据结构之查找算法
- 数据结构:基本查找算法
- 数据结构:二分查找算法
- 数据结构中的查找算法
- 第四周项目(3)-随机数函数应用于游戏
- DOS常用命令详解
- 【c++程序】vector和模板用法
- Linux面试题
- 1001 wooden sticks
- 数据结构和算法------查找
- Translation:How to build Tesseract 3.03 with Visual Studio 2013 (翻译《VS2013 建立tesseract3.03工程》)
- php函数
- QGrapicsItem类
- Mongo-java开发中的小问题
- TestNG·一 基础概念
- openSUSE Nagios Quickstart
- opencv2 伸展直方图以提高图像对比度
- python中list总结