折半查找方法

//折半查找法

    int arr[] = {100,90,80,70,60,50,40,30,20,10};//必须是按序排列的数组
    int top,mid,bottom = 0;
    int findNumber = 0;

    printf("please input findNumber:\n");
    scanf("%d",&findNumber);

    top = sizeof(arr)/sizeof(arr[0]);
    mid = (top + bottom) / 2;

    while (bottom <= top)
    {
        if (findNumber == arr[mid])
        {
            printf("Found.%d\n",mid);
            break;
        }
        else if (findNumber > arr[mid])
        {
            top = mid - 1;
        }else
        {
            bottom = mid + 1;
            
        }
        mid = (top + bottom) / 2;
    }

    if (top < bottom)
    {
        printf("Not find.\n");
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容