A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wpf986530062 中级黑马   /  2015-10-25 20:51  /  886 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
      一个顺序数组,查找某一个元素的下标
     如果从第一个开始比较查找,查找次数会相当多,而且比较占用内存
     因为数组下标初始有0,所以,如果查找不到返回值不能为0,可以用-1
*/
#include<stdio.h>
int searchIterm(int arr[],int lenth,int key);    //声明函数
int main(){
    int arr[7]={1,3,5,7,11,14,16};
    for (int i = 0; i < 7 ; i ++) {   //遍历数组
        printf("%d\t",arr[i]);
    }
    printf("\n");
    int a = searchIterm(arr,7,7);
    printf("%d\n",a);
    return 0;
}
int searchIterm(int arr[],int lenth,int key){   //三个参数,数组名,数组长度,要查找的元素
    int l = 0;
    int h = lenth - 1;
    int m = (l + h)/2;
    while (l <= h) {
        if (key > arr[m]) {           
            l = m + 1;
        }else if(key < arr[m]){
            h = m - 1;
        }else{
            return m ;
        }
        
    }
    return -1;
}

2 个回复

倒序浏览
支持一下啊!
回复 使用道具 举报
赞一个,加油~.~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马