黑马程序员技术交流社区

标题: C语言排序之折半查找代码实现 [打印本页]

作者: chingwei2011    时间: 2015-10-23 23:47
标题: C语言排序之折半查找代码实现
C语言排序之折半查找代码实现
  1. #include <stdio.h>
  2. int searchItem(int key ,int arr[] ,int len){//分别是需要找的数,定义一个数组形参,在main中计算出的元素个数
  3.    
  4.     int low =0 ,high = len -1 , mid ;
  5.    
  6.     while (low <= high ) {
  7.         mid =(low+high)/2;
  8.         if (key > arr[mid]) {
  9.             low = mid+1;
  10.                     }
  11.         else if(key <arr[mid]){
  12.             high = mid -1;
  13.         
  14.         }
  15.         else
  16.         {
  17.             return mid;
  18.         }
  19.         
  20.     }
  21.     return -1 ;
  22. }

  23. int main(int argc, const char * argv[]) {
  24.     int a[]={1, 2 ,3 ,12 ,20 ,30 ,32, 34, 39, 76 ,99 };
  25.     int len = sizeof(a)/sizeof(int);
  26.     int result = searchItem(32,a,len);
  27.    
  28.     if (result != -1) {
  29.         printf("a[%d] = %d  \n",result,a[result]);
  30.     }
  31.     else {
  32.         printf(" 未找到! \n");
  33.     }
  34.     printf("\n");
  35.    
  36.     return 0;
  37. }
复制代码




作者: chingwei2011    时间: 2015-10-23 23:48
a[6] = 32  

Program ended with exit code: 0
作者: 菜鸟adambo    时间: 2015-10-24 19:03
刚学的冒泡排序跟选择排序,抓紧敲一下哦这个
作者: 孙明海    时间: 2015-10-24 22:13
二分法要选排序的
作者: 313919810    时间: 2015-10-25 08:55
这个厉害了啊
作者: liyang783    时间: 2015-10-25 11:50
学习了。大神
作者: pan915595422    时间: 2015-10-25 13:24
又长只是了!谢谢哦!
作者: chingwei2011    时间: 2015-10-25 22:11
孙明海 发表于 2015-10-24 22:13
二分法要选排序的

没错。。。。差点忘了,谢谢提醒。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2