简单的折半查找

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的折半查找相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
int half_search(int arr[], int first, int last, int n)
{
  int mid = 0;
  while (first <= last)
  {
   mid = (first + last) / 2;
   if (n < arr[mid])
   {
    last = mid - 1;
   }
   else if (n>arr[mid])
   {
    first = mid + 1;
   }
   else
   {
    return 1;
   }
  }
  return -1;
}
int main()
{
 int arr[] = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 };
 int i;
 while (1)
 {
  scanf("%d", &i);
  if ((half_search(arr, 0, sizeof(arr) / sizeof(arr[0]) - 1, i) == -1))
  {
   printf("not exist\n");
  }
  else
  {
   printf("%d\n", i);
  }
 }
 return 0;
}


以上是关于简单的折半查找的主要内容,如果未能解决你的问题,请参考以下文章

查找总结-----简单查找和折半查找

C语言折半查找法详细代码(假如有10个已排好序的数)

java 二分查找 - 折半查找算法

二分查找又叫折半查找,是一种简单又快速的查找算法

c语言编程实现“折半查找”的过程。

C语言折半查找法