美文网首页
二分法查找有序数组的某个数的下标

二分法查找有序数组的某个数的下标

作者: ios周周 | 来源:发表于2019-10-19 21:23 被阅读0次

一种是递归的,一种是非递归的

int binarySeach(int a[],int low,int high,int findNum)

{

    if(low>high) {

        return-1;

    }

    int mid = (low + high) /2;

    if(findNum > a[mid]) {

        low = mid +1;

        return binarySeach(a, low, high, findNum);

    }else if(findNum < a[mid])

    {

        high = mid -1;

        return binarySeach(a, low, high, findNum);

    }else

    {

        return mid;

    }

}

int binarySeach2(int a[],int low,int high,int findNum)

{

    while(low<=high) {

        int mid = (low + high) /2;

        if(findNum > a[mid]) {

            low = mid +1;

        }else if(findNum < a[mid])

        {

            high = mid -1;

        }else

        {

            return  mid;

        }

    }

    return  -1;

}

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    int a[] = {1,3,4,6,8,10,12,13,14,18,22,25,28,30,33,37,42,55,76,88,199,211};

    int result =binarySeach2(a,0,21,199);

    NSLog(@"result=%d",result);

}

相关文章

  • 前端面试之算法二分法

    使用二分法的前提是,目标数组的元素必须是有序排列的,所以二分法属于有序查找算法 二分法又称为“折半查找”,从数组的...

  • JS数组的二分查找算法

    用途:对有序数组进行查找。如:查找指定元素在数组中的下标

  • 【算法】二分查找,冒泡排序

    目录二分法查找需求...在有序数组中插入新成员后,仍然是一个有序的数组冒泡排序url编码 二分法查找 https:...

  • swift写二分法查找

    一、原理 1.二分法查找的前提是要先将数组进行排序 2.二分法查找是将数组逐次分成两个数组,然后再在分好的两个数组...

  • 二分法查找有序数组的某个数的下标

    一种是递归的,一种是非递归的 int binarySeach(int a[],int low,int high,i...

  • 解析前端面试之二分查找算法

    二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。 二分法查找的思路如下: (1)首先,从数组的...

  • 二分法查找

    二分法查找 : 目的 : 查找一个数组中是否含义某个元素 : 有返回数组中的位置 ,没有返回 -1 算法: 二分法...

  • 算法基础—二分法查找

    一、前言     二分法查找又称为折半查找,二分法查找的基本思想是把数组中的元素从小到大有序地存放进数组中,首先将...

  • swift泛型约束

    查找某个数组中的元素下标(这里使用最笨的循环查找) 泛型约束

  • 刷前端面经笔记(九)

    1.JavaScript实现二分法查找? 二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找...

网友评论

      本文标题:二分法查找有序数组的某个数的下标

      本文链接:https://www.haomeiwen.com/subject/zownmctx.html