C/C++教程

c++模板实现折半查找

本文主要是介绍c++模板实现折半查找,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

template <class T>
int dichotomy(T arr, int len, int com)
{
  int start = 0;
  int end = len;
  int index = len / 2;
  while (start <= end)
  {
    if (arr[index] > com)
    {
      end = index - 1;
      index = index / 2;
    }
    else if (arr[index] < com)
    {
      start = index + 1;
      index = start + (end - start) / 2;
    }
    else if (arr[index] == com)
    {
      return index;
    }
  }
  return -1;
}

 

void main()
{
  char arr[10] = {'a','b','c','d','e','f','g','h','i','j'};
  int res = dichotomy(arr,10,'e');
  printf("%d\n", res);
}

这篇关于c++模板实现折半查找的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!