二分查找 C语言

来源:互联网 发布:2018年考研人数 知乎 编辑:程序博客网 时间:2024/05/16 14:49

//--摘自虞歌老师的《程序设计基础》#include <stdio.h>#define ARRAY_SIZE 13int bubbleSort(int list[],int arraySize);int binarySearch(int key,int list[],int arraySize);void printArray(const int list[],int arraySize);/*二分查找*/int main(void){    int key,index;    int list[ARRAY_SIZE]={2,4,7,10,11,45,50,59,60,66,69,70,79};    printArray(list,ARRAY_SIZE);    printf("请输入要查找的值:");    scanf("%d",&key);    index=binarySearch(key,list,ARRAY_SIZE);    if(index<0){        printf("查找失败!");    }    else{        printf("查找成功!%d位于数组下标%d位置",key,index);    }    return 0;}int binarySearch(int key,int list[],int arraySize){    int low,mid,high;    low=0;    high=arraySize-1;    while(low<=high){        mid=(low+high)/2;        if(key<list[mid]){            high=mid-1;        }else if(key==list[mid]){            return mid;        }else{            low=mid+1;        }    }    return -1;}void printArray(const int list[],int arraySize){    int i;    for(i=0;i<arraySize;i++){        printf("%d ",list[i]);    }    printf("\n");}



运行结果如图:




--摘自虞歌老师的《程序设计基础》
0 0
原创粉丝点击