zoukankan      html  css  js  c++  java
  • 二分法查找(大于,大于等于x的最小,小于,小于等于x的最大值)

    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    //小于x的最大
    //大于x的最小
    //x的第一个
    //x的第二个
    
    int main()
    {
        int a[10]= {1,4,5,3,2,1,2,3,4,2};
        sort(a,a+10);
        //sort(a,a+10,cmp);
        int x;
        while(scanf("%d",&x)!=EOF)
        {
            int low=0,high=9,mid;
            for(int i=0;i<10;i++)
            printf("%d ",i);
            printf("
    ");
            for(int i=0;i<10;i++)
            printf("%d ",a[i]);
            printf("
    ");
            while(low<=high)
            {
                mid=(low+high)/2;
                /*if(a[mid]==x)//一般二分查找相等
                {
                    printf("%d
    ",mid);
                    break;
                }
                else if(a[mid]>x)
                    high=mid-1;
                else
                    low=mid+1;*/
    
                /*if(a[mid]>x) //大于x的最小值
                    high=mid-1;
                else
                    low=mid+1;*/
                if(a[mid]<x)//小于x的最大值
    //这样理解,l一直在向右移动,直到a[mid]大于等于x,即找出的是大于等于x中的最小值
                    low=mid+1;
                else
                    high=mid-1;
                printf("%d %d %d
    ",low,mid,high);
                //x的第一个值即为a[high+1]  (如果数组中有x)
                //x的第二个值即为a[high+2]  (如果数组中有两个x)
            }
            //printf("%d %d %d
    ",low,mid,high);
            //printf("%d %d
    ",low,high);//大于x的最小值,小于等于x的最大值
            printf("%d %d
    ",low,high);//大于等于x的最小值,小于x的最大值
        }
        return 0;
    }
  • 相关阅读:
    Silverlight学习(五)图形标绘
    Silverlight学习(四) domainservice动态多条件查询
    MySQL之单表查询
    mysql外键的三种关系
    mysql之完整性约束
    接口类和抽象类的区别
    mysql中的sql_mode
    html5本地存储技术 localstorage
    mysql数值类型
    mysql
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3350587.html
Copyright © 2011-2022 走看看