zoukankan      html  css  js  c++  java
  • C语言实现常用查找算法——二分查找

    #include<stdio.h>
    void insert_sort(int a[],int n);
    int binary_search(int a[],int x,int n);
    void print_array(int a[],int n);
    
    main() {
        int a[]= {4,-3,2,-5,7,-32,90,1,-8,43,-9,2};
        int n=sizeof(a)/sizeof(0);
        int x=43;
        print_array(a,n);
        insert_sort(a,n);
        print_array(a,n);
        int m=binary_search(a,x,n);
        printf("%d",m);
    }
    /*插入排序*/
    void insert_sort(int a[],int n) {
        int i,j;
        for(i=1; i<n; i++) {
            int temp=a[i];
            for(j=i; j>0&&a[j-1]>temp; j--) {
                a[j]=a[j-1];
            }
            a[j]=temp;
        }
    }
    /*二分查找*/
    int binary_search(int a[],int x,int n) {
        int low,center,high;
        low=0;
        high=n-1;
        while(low<high) {
            center=(low+high)/2;
            if(a[center]==x) {
                return center;
            } else if(a[center]>x) {
                high=center-1;
            } else {
                low=center+1;
            }
        }
        return -1;
    }
    /*打印数组*/
    void print_array(int a[],int n) {
        int i;
        for(i=0; i<n; i++) {
            printf("%d ",a[i]);
        }
        printf("%c",'
    ');
    }
  • 相关阅读:
    hashlib模块
    sys模块
    random模块
    time模块
    生成器、迭代器
    装饰器
    函数相关内容
    集合相关操作
    springcloud(四):Eureka的配置详解
    springcloud(二):Eureka服务注册与发现
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/9603484.html
Copyright © 2011-2022 走看看