C语言静态查找表的查找算法(顺序查找、折半查找)
顺序查找的实现
#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; }
分类:
C语言学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-02-15 C#可以应用的领域有哪些
2023-02-15 中英文章5 互联网的利与弊(The Prons and Cons of the Internet)