二分查找(函数版)

文章介绍了如何用C语言实现插入排序和二分查找算法,包括函数定义和在主函数中的应用,用于在一个已排序数组中查找特定元素。
摘要由CSDN通过智能技术生成

编写下列函数:

(1)void insert_sort(int a[], int n):实现数组从小到大排序;

(2)bool binary_search(int v[], int n, int x):数组v[]升序排列,查找x,有则返回true,否则,返回false 。  

测试代码为: 

#include <stdio.h>

#include <stdbool.h>

 

void insert_sort(int a[], int n);

bool binary_search(int v[], int n, int x);

 

int main(void)

{

    int n, m;

    scanf("%d%d", &n, &m);

    int a[n];

 

    for (int i = 0; i < n; i++)

    {

        scanf("%d", &a[i]);

    }

 

    insert_sort(a, n);

    bool ans = binary_search(a, n, m);

    if (ans)

        printf("Found!\n");

    else

        printf("Not Found!\n");

 

    return 0;

}

/* 你的代码将被嵌在这里 */

Input Description

第一行输入两个整数n和m,n>0为数组元素个数,m为待查找的整数。

第二行输入n个整数,为数组元素。

Output Description

如果找到则输出Found!,否则输出Not Found!

Sample Input

10 47

11 34 82 7 64 98 47 18 79 20

Sample Output

Found!

void insert_sort(int a[], int n){

    int b=0;

    int d=0;

    int c=0;

    while(b<(n-1)){

        c=b+1;

        while(c<n){

            if(a[b]>a[c]){

            d=a[b];

            a[b]=a[c];

            a[c]=d; 

            }

            c++;

        }

        b++;

    }

 

}

bool binary_search(int v[], int n, int x){

    int high=n;

    int low=0;

    int mid;

    while(low<=high){

    mid=(low+high)/2;

    if(v[mid]>x){

        high=mid-1;

    }

    else if(v[mid]<x){

        low=mid+1;

    }

    else {

        return 1;

        break;

    }

}

if(v[mid]!=x){

    return 0;}

     

}

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值