AI文库-您身边的智能助手,如没有想要的内容请与本站万能的AI助手联系。

请用CFree5.0写一串代码、基本要求 完成查找的算法实现(顺序查找、折半查找等操作),并完成测试与运行。 四、实验内容 实验内容:实现顺序查找与折半查找的程序设计。 实验步骤: 实验步骤: 1.建

来自 辽宁省铁岭市 的网友 时间: 热度:°C 加入收藏 我要投稿 点赞()
一、实验目的

1. 掌握顺序查找和折半查找的原理和方法。
2. 学会使用CFree5.0编写程序实现查找算法。
3. 提高编程能力和调试程序的能力。

二、实验内容

实现顺序查找与折半查找的程序设计。

三、实验步骤

1. 建立查找表

```c
#include <stdio.h>

int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
int n = sizeof(arr) / sizeof(arr[0]);

for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}

return 0;
}
```

2. 输出查找表

```c
#include <stdio.h>

int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
int n = sizeof(arr) / sizeof(arr[0]);

for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}

return 0;
}
```

3. 顺序查找算法

```c
#include <stdio.h>

int sequential_search(int arr[], int n, int target) {
for (int i = 0; i < n; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
```

4. 折半查找算法

```c
#include <stdio.h>

int binary_search(int arr[], int n, int target) {
int left = 0;
int right = n - 1;

while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
```

5. 主函数

```c
#include <stdio.h>

int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
int n = sizeof(arr) / sizeof(arr[0]);
int target;

printf("请输入要查找的目标值:");
scanf("%d", &target);

int index_seq = sequential_search(arr, n, target);
int index_bin = binary_search(arr, n, target);

if (index_seq != -1) {
printf("顺序查找结果:目标值 %d 在数组中的位置为 %d
", target, index_seq);
} else {
printf("顺序查找失败,目标值 %d 不在数组中
", target);
}

if (index_bin != -1) {
printf("折半查找结果:目标值 %d 在数组中的位置为 %d
", target, index_bin);
} else {
printf("折半查找失败,目标值 %d 不在数组中
", target);
}

return 0;
}
```

6. 测试与运行

编译并运行上述代码,根据提示输入要查找的目标值,程序将输出查找结果。
221381
领取福利

微信扫码领取福利

微信扫码分享