aiaiask.com©

开花即结果 提问即答案

"CFree5.0实现顺序与折半查找算法及测试运行"
原始问题:

"CFree5.0实现顺序与折半查找算法及测试运行"

一、实验目的

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

二、实验内容

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

三、实验步骤

  1. 建立查找表
#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;
}
  1. 输出查找表
#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;
}
  1. 顺序查找算法
#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;
}
  1. 折半查找算法
#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;
}
  1. 主函数
#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;
}
  1. 测试与运行

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

"CFree5.0实现顺序与折半查找算法及测试运行"
https://www.aiaiask.com/ask/71560.html
AI / 模型Siliconflow
时间 / DATEDecember 12, 2023, 10:45 AM
语言zh-CN
IP / 区域辽宁 铁岭