• 关于二分查找


    数组a是一个有序的非递减序列,查找与k有关的
    如果能找到k,并且k的位置不唯一的话,返回最右边的那个下标。
    如果找不到k,返回比它小的第一个数的下标。
    #include<stdio.h>
    #define N  1100
    int seach(int k,int a[],int left,int right) {
        int mid;
        while(left<=right) {
            mid=(left+right)/2;
            if(a[mid]>k)
                right=mid-1;
            else
                left=mid+1;
        }
        return right;
    }
    int main() {
       int a[N]={1,2,2,3,4,5,6};
       printf("%d
    ",seach(2,a,0,6));
    return 0;}
    
    数组a是一个有序的非递减序列,查找与k有关的
    如果能找到k,并且k的位置不唯一的话,返回最左边的那个下标。
    如果找不到k,返回比它大的第一个数的下标。
    
    <pre name="code" class="cpp">#include<stdio.h>
    #define N  1100
    int seach(int k,int a[],int left,int right) {
        int mid;
        while(left<=right) {
            mid=(left+right)/2;
            if(a[mid]>=k)
                right=mid-1;
            else
                left=mid+1;
        }
        return left;
    }
    int main() {
       int a[N]={1,2,2,3,4,5,6};
       printf("%d
    ",seach(2,a,0,6));
    return 0;}
    
    /*数组a是一个有序的非递减序列,查找比k小的最大的数的下标
    */
    #include<stdio.h>
    #define N  1100
    int seach(int k,int a[],int left,int right) {
        int mid;
        while(left<=right) {
            mid=(left+right)/2;
            if(a[mid]>=k)
                right=mid-1;
            else
                left=mid+1;
        }
        return right;
    }
    int main() {
       int a[N]={1,2,2,3,4,5,6};
       printf("%d
    ",seach(5,a,0,6));
    return 0;}
    
    /*数组a是一个有序的非递减序列,查找比k大的最小数的下标
    */
    #include<stdio.h>
    #define N  1100
    int seach(int k,int a[],int left,int right) {
        int mid;
        while(left<=right) {
            mid=(left+right)/2;
            if(a[mid]>k)
                right=mid-1;
            else
                left=mid+1;
        }
        return left;
    }
    int main() {
       int a[N]={1,2,2,3,4,5,6};
       printf("%d
    ",seach(2,a,0,6));
    return 0;}
    


  • 相关阅读:
    apply call bind方法的区别和含义
    html头部meta标签
    语义化标签
    “文件名和url路径名”命名要点以及大小写问题
    BMP GIF PNG JPG等图片格式的区别和适用情况
    前端页面的性能优化
    js阻止默认事件,如a标签跳转和事件冒泡
    散列碰撞问题的解决——开链法(拉链法)
    substring()方法
    对学生成绩进行散列
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410533.html
Copyright © 2020-2023  润新知