首页 > 其他 > 详细

折半查找

时间:2015-12-15 10:34:22      阅读:214      评论:0      收藏:0      [点我收藏+]

#include<stdio.h>

int sreach(int x, int a[], int n)

{

int left = 0;

int right = n - 1;

while (left <= right)

{

int mid = (left + right) / 2;

if (a[mid] < x)

{

left = mid + 1;

}

else if (a[mid] == x)

{

return mid;

}

else

{

right = mid - 1;

}

}

return -1;

}

int main()

{

int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

int num = 0;

int sz = sizeof(arr) / sizeof(arr[0]);

scanf("%d", &num);

int ret = sreach(num, arr, sz);

if (ret == -1)

{

printf("该数不存在\n");

}

else

{

printf("a[%d]\n", ret);  //查找的数在数组中的位置

}

return 0;

}



折半查找

原文:http://10915378.blog.51cto.com/10905378/1723032

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!