顺序查找的实现
#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; }