黑马程序员-IOS学习笔记 折半查找 在数组中插入一个数返回index

原创 2015年07月11日 10:26:23

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------


/*

    折半查找

 

    @param len 数组长度

    @param key 要查找的数

 

    @return 要查找的数的位置,如果找不到返回-1

 

 */

int searchItem(int arr[],int len,int key){

   

    //先定义变量

    int low = 0,high = len-1,mid;

    

    //循环

    while (low<=high) {

        //计算mid的位置

        mid = (low+high)/2;

        

         //判断key a[mid]

        if(key>arr[mid]){

        //key>a[mid]    low = mid+1;

            low = mid+1;

        }else if(key<arr[mid]){

            //key<a[mid]    high = mid-1;

            high = mid - 1;

        }else{

             //key==a[mid]   return min;

            return mid;

        }

        

    }

    

    //下面是查找不到的情况

    return -1;

}



/*

 折半查找

 插入一个数 返回index

 */

int insertItem(int arr[],int len,int key){

    

    //先定义变量

    int low = 0,high = len-1,mid;

    

    //循环

    while (low<=high) {

        //计算mid的位置

        mid = (low+high)/2;

        

        //判断key a[mid]

        if(key>arr[mid]){

            //key>a[mid]    low = mid+1;

            low = mid+1;

        }else if(key<arr[mid]){

            //key<a[mid]    high = mid-1;

            high = mid - 1;

        }else{

            //key==a[mid]   return min;

            return mid + 1;

        }

        

    }

    

    //下面是查找不到的情况

    return low;

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员_C语言基础_数组之冒泡排序、快速选择排序、折半查找

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------       学习一维数组和二维数组的差别不大,学习方法可以通用,在学习过程中可以比较学习,找出...

黑马程序员_JavaSE基础05 之 数组的操作 求最值 排序 折半查找

---------------------- android培训、java培训、期待与您交流! --------------------- JavaSE_05 笔记 ...

黑马程序员-ios学习笔记 c语言 数组

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------   一、数组的概念         用来存放若干个类型相同的有序的数据的结构,也是一种构造类...

黑马程序员JNI学习笔记

  • 2013-05-23 23:49
  • 37KB
  • 下载

黑马程序员——c语言基础:冒泡排序、选择排序和折半查找

1.冒泡排序 冒泡排序是一种简单的排序算法,分为大数下沉和小数上浮两种。 冒泡排序步骤(大数下沉): 1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2)对每一对相邻元素作同样的工...

黑马程序员____折半查找算法

----------------------android培训、java培训、期待与您交流! ----------------------             折半查找(...

《黑马程序员》折半查找法实现及测试练习

/** * 折半查找算法 * 先写一个方法查找指定的key在数组中的位置 * 然后写折半查找的两种方法 * 用于折半查找的数组必须要是有序的 * * ...

黑马程序员----C 语言学习笔记之结构体数组,指针,嵌套的使用

------Java培训、Android培训、iOS培训、.Net培训-------- 一、结构体数组概念及定义 1、概念 数组的元素也可以是结构类型。因此可以构成结构型数组。结构数组的每一...

【黑马程序员-学习笔记】数据结构-串与数组

一、数组 数组是一个具有固定格式和数量的数据有序集,每一个数据元素有唯一的一组下标来标识,因此,在数组上不能做插入、删除数据元素的操作。通常在各种高级语言中数组一旦被定义,每一维的大小及上下界都不能...

黑马程序员:Java学习笔记---数组反射和JavaBean

黑马程序员:Java学习笔记---数组反射和JavaBean   ---------------------- android培训、java培训、期待与您交流! -----------------...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)