请用CFree5.0写一串代码、基本要求 完成查找的算法实现(顺序查找、折半查找等操作),并完成测试与运行。 四、实验内容 实验内容:实现顺序查找与折半查找的程序设计。 实验步骤: 实验步骤: 1.建
一、实验目的
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. 测试与运行
编译并运行上述代码,根据提示输入要查找的目标值,程序将输出查找结果。
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. 测试与运行
编译并运行上述代码,根据提示输入要查找的目标值,程序将输出查找结果。
上一篇:无人台球厅商业模式
下一篇:计算机管理员兴趣和启发