zoukankan      html  css  js  c++  java
  • 关于二分查找

    数组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;}
    


  • 相关阅读:
    VCSA 6.5 升级 VCSA 6.7
    使用再生龙Clonezilla备份还原Linux系统
    gulp前端自动化构建工具学习笔记(mac)
    Echarts基本图表的学习笔记
    jQuery中$.ajax()用法
    jQuery实现淡入淡出轮播图带左右按钮及下方小圆点
    js解析XMl文件,兼容IE、Firefox、谷歌
    HTML<marquee>标签实现滚动公告通知、广告的效果
    画太极
    让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410533.html
Copyright © 2011-2022 走看看