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

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

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

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
领取福利

微信扫码领取福利

微信扫码分享

阅读并接受《用户协议》
注:各登录账户无关联!请仅用一种方式登录。


用户注册协议

一、 本网站运用开源的网站程序平台,通过国际互联网络等手段为会员或游客提供程序代码或者文章信息等服务。本网站有权在必要时修改服务条款,服务条款一旦发生变动,将会在重要页面上提示修改内容或通过其他形式告知会员。如果会员不同意所改动的内容,可以主动取消获得的网络服务。如果会员继续享用网络服务,则视为接受服务条款的变动。网站保留随时修改或中断服务而不需知照会员的权利。本站行使修改或中断服务的权利,不需对会员或第三方负责。

关闭