二分查找(折半算法实现)

Posted 码码小虫

tags:

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

C++二分查找算法

原理如下图:

该算法针对有序列表才有意义。

#include <iostream>
using
namespace std;
//二分搜索算法,折半查找

//二分查找要求被查找的数组的元素是按照有序的顺序排列的

int
main() {    
   int
array[400];    
   //数组的大小
   int size = 0;    
   cout
<< "输入需要创建的数组的元素个数:" << endl;    
   cin
>> size;    //向数组中按序添加元素    for (auto i = 0; i < size; i++)    {        
       array
[i] = i;    }    
   //输入要在数组中查找的书    int checkElement;    
   cin
>> checkElement;    
   //数组的第一个元素
   int headIndex = 0;    
   //数组的最后一个元素
   int tailIndex = (size - 1);    
   if
(checkElement<headIndex || checkElement>tailIndex)    {        
       cout << "你输入的数字不在当前搜索的范围内" << endl;        
       return
0;    }    
   //对数组进行遍历,找出对应数字在数组中的下标索引    int centerIndex = (headIndex + tailIndex) / 2;    
   //如果中间索引的值大于要搜索的值,则在左边进行查找
   while (headIndex <= tailIndex)    {        
   if(array[centerIndex] < checkElement)        {            headIndex = centerIndex + 1;            
           cout << "查找中----右边" << endl;        }        
   else if (array[centerIndex] == checkElement)        {            
           cout
<< "查找到了当前的数字" <<array[centerIndex]<<endl;            
           break;        }        
   else        {            tailIndex = centerIndex - 1;            
           cout
<< "查找中----左边" << endl;        }        centerIndex = (headIndex + tailIndex) / 2;    }    
   if
(headIndex > tailIndex)    {        
           cout
<< "当前数组中没有查找到你想要的数字" << endl;    }    
   return
0; }

以上是关于二分查找(折半算法实现)的主要内容,如果未能解决你的问题,请参考以下文章

二分查找(折半算法实现)

python实现二分查找(折半查找)算法

二分查找(折半查找)算法详解(C语言实现)

折半查找的概念及实现代码

C言语二分查找(折半查找)算法及代码

PHP实现二分查找算法(代码详解)