C++折半查找学习文档:
需要的软件:Visual Studio 2022 (C++)
- 折半查找定义:
在计算机中,折半查找,也称二分搜索。它是一种在有序数组中查找某一特定元素的搜索算法。
- 折半查找实现原理:
搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半 。
实现图:
实例1:
//Copyright @ 2022 www.sunzishaokao.com | 孙子烧烤知识分享站 版权所有//
//作者:孙子烧烤 Email;[email protected]//
//C++折半查找//
#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
//1.折半查找是针对有数组的。
int num[10] = { 10,20,30,40,50,60,70,80,90,100 };
int N = 10;//数组中元素的个数
int low = 0;//这是数组第一个元素的序号
int high = N - 1;//记录最后一个元素的序号
int position = -1;//保存查找元素位置
int mid;
//输入过程
cout << "请输入一个数值:";
int value;//输入值的变量
cin >> value;//输入值
while (low < high)//循环查找
{
mid = (low + high) / 2;//求中间元素序号
//判断过程
if (num[mid] == value)
{
position = mid;
break;
}
else if(num[mid]>value)
{
high = mid - 1;
}
else if (num[mid] < value)
{
low = mid + 1;
}
}
//输出过程
if (position < 0)
{
cout << "404" << endl;
cout << "您输入的相关信息未在系统中查找到!" << endl;
}
else
{
cout << "该元素位置是:" << position << endl;
}
}
实例2:
//Copyright @ 2022 www.sunzishaokao.com | 孙子烧烤知识分享站 版权所有//
//作者:孙子烧烤 Email;[email protected]//
//C++折半查找|2//
#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
int num[5];
for (int i = 0; i < 5; i++)
{
cin >> num[i];
}
//排序
sort(num, num + 5);
//查找
char* postion = find(num, num + 5, n);
int po = postion - num;
//输出
cout << "位置是" << po<<endl;
}
© 版权声明
THE END
暂无评论内容