数据结构 | 线性查找
一、顺序查找
#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));
}
数据结构 | 线性查找相关推荐
- 算法与数据结构(python):线性查找与二分查找
提示:提示:专栏解锁后,可以查看该专栏所有文章. 文章目录 查找 线性查找 1普通线性查找 2递归线性查找 二分查找 1普通二分查找 2递归二分查找 查找 查找可以说是我们业务代码里用得最多的操作,比 ...
- 算法与数据结构(第一周)——线性查找法
目录 线性查找法介绍 实现线性查找法 使用泛型 使用自定义类测试算法 循环不变量 简单的复杂度分析 常见的时间复杂度 测试算法性能 线性查找法介绍 线性查找法是一个非常简单的算法,比如说现在有一打试卷 ...
- 算法与数据结构基础<一>----线性查找法
开篇: 对于数据结构及算法的学习在17年时就已经在博客中开了专栏: 但是!!!感觉学得有点零散,有c版本的,也有java版本的,没成体系,当然其效果也并没达到自己满意的效果,基于此,这里准备重新开个专 ...
- 【算法与数据结构】3 知行合一,线性查找的自定义类测试
欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于算法与数据结构体系专栏,本专栏对于0基础者极为友好,欢迎与我一起完成算法与数据结构的从0到1的跨越 线性查找 ...
- 算法与数据结构体系:线性查找
算法与数据结构体系 - 线性查找 什么是算法 线性查找法 基础创建 修改1:私有化 修改2:泛型 提升:自定义Student类测试算法 复杂度分析:表示算法的性能 常见算法的复杂度 测试算法性能 什么 ...
- 数据结构之线性查找和折半查找
1.线性查找 比如字符串 char s[] = "chenyu"; 如果我们是线性查找的话,就是从字符'c'依次到字符串结尾'u'查找 2.折半查找 注意查找之前必须是有序的 比如 ...
- Java数据结构与算法——线性查找 二分查找 插值查找
1.线性查找 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称[顺序查找] 要求: 如果找到了,就提示找到,并给出下标值. package com.szh. ...
- Java数据结构与算法 线性查找和二分查找
查找 查找(searching)是在一组数据项中找到指定的目标元素(target element)或者判定组内不存在目标的过程.要查找的数据项组有事成为查找池(search pool). 在此讨论两种 ...
- 数据结构——线性表的查找
查找 查找的概念 线性表的查找 顺序查找(线性查找) 折半查找(二分或对分查找) 分块查找 查找的概念 主关键字:可唯一地标识一个记录的关键字就是主关键字 次关键字:用以识别若干记录的关键字就是次关键 ...
最新文章
- 增加数据_PVC行业数据| 累库是趋势,华南海运中旬料增加(1230)
- Cities (思维 树)
- 第十届蓝桥杯java B组—试题B 不同子串
- java学习(151):字节输出流
- itext实现HTML转换为PDF
- 计算机软件期刊是不是中文核心,2020计算机测量与控制是什么期刊_计算机测量与控制是核心期刊吗_计算机测量与控制官网...
- linux里hba状态_Linux下查看FC HBA信息
- cpu超线程优缺点_今天看了下百度百科!看到了超线程的优缺点啊!转!
- 【资源分享】云计算 CRM 等网上搜集资料
- 4246 奶牛的身高
- ThreadPoolExecutor(七)——总结补充
- python自动排版公众号_自制微信公众号一键排版工具
- vs2017.NET智能提示的英文改为中文
- Python采集常用:谷歌浏览器驱动——Chromedriver 插件安装教程
- 会议室LED大屏如何实现无线连接投屏显示?
- arcgis像元大小和分辨率_ArcGIS教程:栅格数据基本词汇
- canvas生成二维码海报-可配置
- jQuery入门选择器
- CentOS SRS直播服务器的搭建
- python中max函数用法_python3 内置函数——max()函数