C学习6

AvalonForLovers / 2023-08-17 / 原文

1、通过自定义函数做二分查找

#include<stdio.h>
int binary_search(int arr[], int x, int sz)
{
    int left = 0;
    int right = sz - 1;
    while (left <= right)
    {
        int mid = (left + right) / 2;
        if (arr[mid] < x)
        {
            left = mid + 1;
        }
        else if (arr[mid] > x)
        {
            right = mid - 1;
        }
        else
        {
            return mid;
        }
    }
    return -1;
}

int main()
{
    int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
    int n;
    int sz1 = sizeof(arr1) / sizeof(arr1[0]);
    printf("请输入要查找的数据:");
    scanf_s("%d", &n);
    int ret = binary_search(arr1, n, sz1);
    if (ret == -1)
    {
        printf("找不到");
    }
    else
    {
        printf("找到了,下标是:%d\n",ret);
    }
    return 0;
}

重点在于binary_search函数部分,while条件为<=而不是<,不然会找不到。

2、利用头文件包含来做函数引用

.h头文件里放函数声明

.cpp文件里放函数体

 主程序里就可以#include"add.h"了

 这样可以精简主程序、灵活调用各个模块,有种模块化的美XD

3、为了避免将来的大工程里、多人共同作业的情况下、重复包含文件(重复拷贝进去)造成的资源占用过高和冗余,在.h头文件里使用如下语句