文档章节

算法学习 之查询

东湖畔新家
 东湖畔新家
发布于 2017/05/09 18:57
字数 361
阅读 6
收藏 0

 

/******************顺序查找******************/
//假设静态查找表的顺序存储结构为
typedef struct
{
ElemType *elem;   // 数据元素存储空间基址,建表时
// 按实际长度分配,0号单元留空
int length;         // 表的长度
} SSTable;

int Search_Seq(SSTable ST, KeyType key) 
{  /*在顺序表ST中顺序查找其关键字等于key的数据元素。若找到,则函数值为该元素在表中的位置,否则为0。*/
ST.elem[0] = key;      // “哨兵”
for (i=ST.length; ST.elem[i] != key; --i); // 从后往前找
return i; // 找不到时,i为0
} // Search_Seq

/****************比较无监视哨的查找算法***********/
int location (SSTable ST , ElemType& e) 
{
k = 1;
while ( k <= ST.length && ST.elem[k] !=e) 
k++;
if ( k<=ST.length) return k; 
else return 0;
} //location
//在表长>1000时,将使算法的执行时间几乎增加一倍。
//为此,改写顺序表的查找算法, 算法中附设监视哨,以避免循环时每一步都要判别是否数组出界。

/******************有序表折半查找******************/
int Search_Bin ( SSTable ST, KeyType key ) 
{  // 在有序表ST中折半查找其关键字等于key的数据元素。
// 若找到,则函数值为该元素在表中的位置,否则为0。
low = 1;    high = ST.length;  //置区间初值
while ( low <= high ) 
{
mid = (low + high) / 2;
if (ST.elem[mid] == key)   return mid;  //找到
else if ( ST.elem[mid] < key )
high = mid - 1; // 继续在前半区间进行查找
else  low = mid + 1; // 继续在后半区间进行查找
}
return 0; // 顺序表中不存在待查元素
} // Search_Bin

© 著作权归作者所有

共有 人打赏支持
东湖畔新家
粉丝 1
博文 170
码字总数 31582
作品 0
杭州
后端工程师
私信 提问
GitHub最著名的20个Python机器学习项目

我们分析了GitHub上的前20名Python机器学习项目,发现scikit-Learn,PyLearn2和NuPic是贡献最积极的项目。让我们一起在Github上探索这些流行的项目! Scikit-learn:Scikit-learn 是基于Sci...

stock0991
2017/12/07
0
0
盘点·GitHub最著名的20个Python机器学习项目

我们分析了GitHub上的前20名Python机器学习项目,发现scikit-Learn,PyLearn2和NuPic是贡献最积极的项目。让我们一起在Github上探索这些流行的项目! Scikit-learn:Scikit-learn 是基于Sci...

【方向】
2017/12/06
0
0
python数据挖掘案例系列教程——python实现搜索引擎

全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 今天我们使用python实现一个网站搜索引擎。主要包含两个部分。网站数据库的生成、搜索引擎。其中搜索引擎部分我们使用单词频度算...

luanpeng825485697
2018/01/07
0
0
前沿观察 | SageDB:一个自学成才的数据库

版权声明:本文由腾讯云数据库产品团队整理,页面原始内容来自于db weekly英文官网,若转载请注明出处。翻译目的在于传递更多全球最新数据库领域相关信息,并不意味着腾讯云数据库产品团队赞...

腾讯技术
03/28
0
0
GitHub最著名的20个Python机器学习项目!

来源:云栖社区 本文长度为1729字,建议阅读3分钟 开源是技术创新和快速发展的核心。本文向你展示Python机器学习开源项目以及在分析过程中发现的非常有趣的见解和趋势。 我们分析了GitHub上的...

enohtzvqijxo00atz3y8
2017/12/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
今天
6
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
6
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
10
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部