一、顺序查找

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>#define InitSize 50/*顺序表*/
typedef int ElemType;
typedef struct {ElemType* elem;int TableLen;
}Table;// 初始化顺序表
Table InitTable() {ElemType input[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };Table table;table.elem = (ElemType*)malloc(sizeof(ElemType) * InitSize);table.TableLen = sizeof(input) / sizeof(ElemType);for (int i = 0; i < table.TableLen; i++) {table.elem[i] = input[i];}return table;
}// 顺序查找
int SequentialSearch(Table table, ElemType key) {int i;for (i = 0; i < table.TableLen && table.elem[i] != key; ++i);return i == table.TableLen ? -1:i;
}int main() {Table table = InitTable();ElemType key = 5;printf("元素 %d 位于下标 %d 处", key, SequentialSearch(table, key));
}

二、二分/折半查找

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>#define InitSize 50/*顺序表*/
typedef int ElemType;
typedef struct {ElemType* elem;int TableLen;
}Table;// 初始化顺序表
Table InitTable() {ElemType input[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };Table table;table.elem = (ElemType*)malloc(sizeof(ElemType) * InitSize);table.TableLen = sizeof(input) / sizeof(ElemType);for (int i = 0; i < table.TableLen; i++) {table.elem[i] = input[i];}return table;
}// 二分查找
int BinarySearch(Table table, ElemType key) {int low = 0, high = table.TableLen - 1, mid;while (low <= high) {mid = (low + high) / 2;// 从前半部分开始找                                                                                                   if (key < table.elem[mid]) {high = mid - 1;}// 从后半部分开始找else if (key > table.elem[mid]) {low = mid + 1;}else {return mid;}}return -1;
}int main() {Table table = InitTable();ElemType key = 5;printf("元素 %d 位于下标 %d 处", key, BinarySearch(table, key));
}

数据结构 | 线性查找相关推荐

  1. 算法与数据结构(python):线性查找与二分查找

    提示:提示:专栏解锁后,可以查看该专栏所有文章. 文章目录 查找 线性查找 1普通线性查找 2递归线性查找 二分查找 1普通二分查找 2递归二分查找 查找 查找可以说是我们业务代码里用得最多的操作,比 ...

  2. 算法与数据结构(第一周)——线性查找法

    目录 线性查找法介绍 实现线性查找法 使用泛型 使用自定义类测试算法 循环不变量 简单的复杂度分析 常见的时间复杂度 测试算法性能 线性查找法介绍 线性查找法是一个非常简单的算法,比如说现在有一打试卷 ...

  3. 算法与数据结构基础<一>----线性查找法

    开篇: 对于数据结构及算法的学习在17年时就已经在博客中开了专栏: 但是!!!感觉学得有点零散,有c版本的,也有java版本的,没成体系,当然其效果也并没达到自己满意的效果,基于此,这里准备重新开个专 ...

  4. 【算法与数据结构】3 知行合一,线性查找的自定义类测试

    欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于算法与数据结构体系专栏,本专栏对于0基础者极为友好,欢迎与我一起完成算法与数据结构的从0到1的跨越 线性查找 ...

  5. 算法与数据结构体系:线性查找

    算法与数据结构体系 - 线性查找 什么是算法 线性查找法 基础创建 修改1:私有化 修改2:泛型 提升:自定义Student类测试算法 复杂度分析:表示算法的性能 常见算法的复杂度 测试算法性能 什么 ...

  6. 数据结构之线性查找和折半查找

    1.线性查找 比如字符串 char s[] = "chenyu"; 如果我们是线性查找的话,就是从字符'c'依次到字符串结尾'u'查找 2.折半查找 注意查找之前必须是有序的 比如 ...

  7. Java数据结构与算法——线性查找 二分查找 插值查找

    1.线性查找 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称[顺序查找] 要求: 如果找到了,就提示找到,并给出下标值. package com.szh. ...

  8. Java数据结构与算法 线性查找和二分查找

    查找 查找(searching)是在一组数据项中找到指定的目标元素(target element)或者判定组内不存在目标的过程.要查找的数据项组有事成为查找池(search pool). 在此讨论两种 ...

  9. 数据结构——线性表的查找

    查找 查找的概念 线性表的查找 顺序查找(线性查找) 折半查找(二分或对分查找) 分块查找 查找的概念 主关键字:可唯一地标识一个记录的关键字就是主关键字 次关键字:用以识别若干记录的关键字就是次关键 ...

最新文章

  1. 增加数据_PVC行业数据| 累库是趋势,华南海运中旬料增加(1230)
  2. Cities (思维 树)
  3. 第十届蓝桥杯java B组—试题B 不同子串
  4. java学习(151):字节输出流
  5. itext实现HTML转换为PDF
  6. 计算机软件期刊是不是中文核心,2020计算机测量与控制是什么期刊_计算机测量与控制是核心期刊吗_计算机测量与控制官网...
  7. linux里hba状态_Linux下查看FC HBA信息
  8. cpu超线程优缺点_今天看了下百度百科!看到了超线程的优缺点啊!转!
  9. 【资源分享】云计算 CRM 等网上搜集资料
  10. 4246 奶牛的身高
  11. ThreadPoolExecutor(七)——总结补充
  12. python自动排版公众号_自制微信公众号一键排版工具
  13. vs2017.NET智能提示的英文改为中文
  14. Python采集常用:谷歌浏览器驱动——Chromedriver 插件安装教程
  15. 会议室LED大屏如何实现无线连接投屏显示?
  16. arcgis像元大小和分辨率_ArcGIS教程:栅格数据基本词汇
  17. canvas生成二维码海报-可配置
  18. jQuery入门选择器
  19. CentOS SRS直播服务器的搭建
  20. python中max函数用法_python3 内置函数——max()函数

热门文章

  1. 急性肠胃炎经常找上门?多数是因为冰箱里的不洁食物所致
  2. IdentityServer4(一):概念及基本介绍
  3. 使用FFMPEG降低视频分辨率
  4. nodejs+Vue餐饮点餐系统
  5. 【数据库】数据库索引原理
  6. 图像ARGB格式及RGB编码概念及解释
  7. HDU 5756 ztr loves lucky numbers (dfs)(搜索)
  8. JS获取当前时间的方法
  9. e3 1231 v3 达芬奇_软件漏洞 非特斯拉可在欧洲V3超充站免费充电
  10. 操作系统学习之用C语言模拟FIFO算法