C语言静态查找表的查找算法(顺序查找、折半查找)

news/2025/2/15 10:05:23/文章来源:https://www.cnblogs.com/hechunfeng/p/18716561

 

 

顺序查找的实现

#include <stdio.h>#define SIZE 10  // 静态查找表的大小// 顺序查找函数
int sequentialSearch(int arr[], int size, int target) {for (int i = 0; i < size; i++) {if (arr[i] == target) {return i;  // 查找成功,返回目标的索引
        }}return -1;  // 查找失败
}int main() {int staticTable[SIZE] = {23, 45, 12, 67, 34, 89, 10, 77, 55, 31};  // 静态查找表int target;printf("请输入要查找的数字:");scanf("%d", &target);int index = sequentialSearch(staticTable, SIZE, target);if (index != -1) {printf("找到数字 %d ,它在索引 %d 上。\n", target, index);} else {printf("数字 %d 不在查找表中。\n", target);}return 0;
}

 

 

折半查找的实现

#include <stdio.h>#define SIZE 10  // 静态查找表的大小// 折半查找函数(二分查找)
int binarySearch(int arr[], int size, int target) {int low = 0;int high = size - 1;while (low <= high) {int mid = (low + high) / 2;  // 计算中间索引if (arr[mid] == target) {return mid;  // 查找成功,返回索引} else if (arr[mid] < target) {low = mid + 1;  // 在右半部分继续查找} else {high = mid - 1;  // 在左半部分继续查找
        }}return -1;  // 查找失败
}int main() {int staticTable[SIZE] = {10, 12, 23, 31, 34, 45, 55, 67, 77, 89};  // 静态查找表(有序)int target;printf("请输入要查找的数字:");scanf("%d", &target);int index = binarySearch(staticTable, SIZE, target);if (index != -1) {printf("找到数字 %d ,它在索引 %d 上。\n", target, index);} else {printf("数字 %d 不在查找表中。\n", target);}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/884156.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏陪玩接单平台源码,如何实现按钮悬浮功能

游戏陪玩接单平台源码,如何实现按钮悬浮功能实现可视区域底部悬浮编辑提交等功能的悬浮框: 并当滚动到某处时, 固定在该处<template><div><slot></slot><divv-show="show"style="height: 80px"></div></div>…

11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行)

11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行) @目录11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行)2. 最后:建 Module - docker_boot编辑 pom<?xml version="1.0" encoding="UTF-8"?&g…

raylib U1S02 - raylib程序的基本结构

在写raylib的时候,代码有一个基本的结构,不同功能的代码按照这个机构去填充。 一般来说,我们可以把一个raylib的程序分成三个模块:创建窗口和元素 主循环,实时计算和渲染 结束程序,释放空间下面是基本框架的代码。以后大家写raylib,可以直接先把这段代码复制上 #include…

Regulex:这款正则表达式可视化神器,让复杂正则一目了然!

引言 大家好,今天分享一个可视化正则表达式的网站,可以更加清晰的调试正则表达式,方便大家应对那种没有注释并且看不懂的正则。 正则可视化 地址:https://jex.im/regulex/#!flags=&re= Github 地址:https://github.com/CJex/regulex 来看看效果,网站自带的正则可视化…

Windows 10/11 安装paraview

下载: https://www.paraview.org/download/安装打开 paraview 之后报错,如下: paraview.exe -系统错误 paraview 由于找不到 msmpi.dll, ,无法继续执行代码。重新安装程序可能会解决此向题 安装 MPI v10.1.3 https://www.microsoft.com/en-us/download/details.aspx?id…

Float、Double 浮点数的二进制表示方法

转载请标明原文地址:https://segmentfault.com/a/1190000041768195 Float二进制表示法 IEEE754标准中规定,单精度浮点数float占4字节32位 Sign(符号1位)|Exponent(指数8位 偏移127)|Mantissa(尾数23位) Sign(符号):表示浮点数的正负(大于等于0为0,小于0为1) Exponent(指数):…

Float Double 浮点数 IEEE754 二进制表示法

转载请标明原文地址:https://segmentfault.com/a/1190000041768195 Float二进制表示法 IEEE754标准中规定,单精度浮点数float占4字节32位 Sign(符号1位)|Exponent(指数8位 偏移127)|Mantissa(尾数23位) Sign(符号):表示浮点数的正负(大于等于0为0,小于0为1) Exponent(指数):…

五分钟搞定!Linux平台上用Ansible自动化部署SQL Server AlwaysOn集群

五分钟搞定!Linux平台上用Ansible自动化部署SQL Server AlwaysOn集群前言 以下内容是由红帽官方博客整理而成,使用Ansible在Linux平台上自动化部署SQL Server AlwaysOn集群不熟悉整个流程的朋友可以先看之前的部署文章,手动部署一遍 从DNS配置到Pacemaker部署:一步步教你在…

Wireshark的部署(学习笔记)

〇、大纲 1、远程数据包捕获 2、集线器环境下数据包捕获 3、交换机环境下数据包捕获 4、本地流量的捕获 5、虚拟机流量的捕获 一、远程数据包捕获 情形:需要异地管理分析服务器流量,有服务器控制权。方案:使用WinPcap下的Rpcap运行在目标服务器上,向远程控制机传回流量。服…