折半查找、

这篇具有很好参考价值的文章主要介绍了折半查找、。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

描述

给定一个已按从大到小排序好的数组和一个数,使用折半查找算法,输出该数在数组中的位置。如果该数不在数组中,则输出“无此数”。

输入

输入为两行,第一行包含多个整数,用空格分隔,表示已排序好的数组;第二行为需要查找的数。

输出

输出一个整数,表示需要查找的数在数组中的位置。如果该数不在数组中,则输出“无此数”。

输入样例 1 

15 13 12 10 9 8 7 6 5 4 3 2 1 0 -1
8

输出样例 1

6

输入样例 2 

29 27 23 22 21 16 14 13 11 8 6 4 3 0 -2
0

输出样例 2

14

输入样例 3 

10 9 8 7 6 5 4 3 2 1
-1

输出样例 3文章来源地址https://www.toymoban.com/news/detail-635043.html

无此数
#include <iostream>
using namespace std;
int main()
{
	int number[20],i;
	char c;
	for (i = 1; i < 20; i++)
	{
		cin >> number[i];
		c = getchar();
		if (c == '\n')break;
	}
	int key;
	cin >> key;
	int left=1, high=i, mid=(left+high)/2;
	while (left <= high)
	{
		if (number[mid] == key)
		{
			cout << mid; break;
		}
		else if (number[mid] < key)
		{
			high = mid - 1;
			mid = (high + left) / 2;
		}
		else
		{
			left = mid + 1;
			mid = (high + left) / 2;
		}
	}
	if (number[mid] != key)cout << "无此数";
	return 0;
}

到了这里,关于折半查找、的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 折半查找实验 (数据结构)

    一、实验目的 掌握折半查找算法的基本思想 掌握折半查找算法的实现方法 掌握折半查找的时间性能 掌握折半查找类的定义和使用 二、实验要求 熟悉C++语言编程 了解折半查找的原理 了解折半查找类的定义、应用 三、实验内容 1、问题描述 在一个有序序列中,折半查找一个

    2024年02月08日
    浏览(84)
  • 折半查找算法(BinarySearch)

            查找算法是一种在数字列表中确定目标元素所在位置的算法。假设给定一个目标元素 11 和一个包含元素 11 的数字列表(例如 10, 11, 12,13,14, 15, 16, 17, 18, 19, 20),然后在该数字列表中找到目标元素的位置。         折半查找算法也叫做对分查找和二分查找。折半

    2024年02月03日
    浏览(40)
  • 折半查找(二分查找)的两种方法及实现 Python

    概念: 在计算机科学中,折半查找,也称二分查找,是一种在有序数组中查找某一特定元素的搜索算法。 搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一

    2024年02月09日
    浏览(39)
  • 17-数据结构-查找-(顺序、折半、分块)

            简介:查找,顾名思义,是我们处理数据时常用的操作之一。大概就是我们从表格中去搜索我们想要的东西,这个表格,就是所谓的查找表(存储数据的表)。而我们怎么设计查找,才可以让计算机更快的去找到筛选我们所需要的信息呢,因此,关于怎么设计查找

    2024年02月09日
    浏览(55)
  • C语言折半查找算法及代码实现

    1.折半查找的定义: 在计算机中, 折半查找 ,也称 二分搜索。它 是一种在有序数组中查找某一特定元素的搜索算法。 2.折半查找的实现原理:                  搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素

    2024年02月05日
    浏览(57)
  • C++数据结构之查找——静态查找表(顺序查找、折半查找、分块查找 带有gif以及图示)

    目录 一、查找的相关概念介绍 1.查找表(Search Table) 概念 对查找表的操作 查找表的分类 2.(Key) 概念 3.查找(Searching) 概念 4.衡量查找算法的标准 1.时间复杂度 2.空间复杂度 3.平均查找长度(ASL) 二、静态查找表 1.顺序查找 算法思路 算法举例 算法性能分析 不等概率

    2024年02月03日
    浏览(44)
  • 头歌(C语言)-数据结构与算法-查找-第1关:实现折半查找

    任务描述 相关知识 编程要求 测试说明 任务描述 本关要求通过补全函数 BSL_FindKey 来实现在已排序的顺序表中查找关键码值为 key 的结点并返回该结点的编号。 相关知识 折半查找通常是针对顺序存储的线性表,线性表的结点按关键码从小到大排序,后面称之为折半查找的顺序

    2024年02月10日
    浏览(60)
  • 二分(折半查找)详细解答(边界条件终止条件等等详细解释)

    刷 Leetcode 总能遇到关于二分的题目,但是之前也只是草草地了解一下,每次在使用的时候都需要找模板,要不然就需要对于边界条件进行调试,着实是很麻烦!!! 首先来简单介绍一下二分:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半

    2024年02月05日
    浏览(51)
  • 用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组

      目录 一、冒泡排序 1.冒泡排序介绍 2.排序的思路 3.完整代码 二、折半查找 1.折半查找介绍 2.查找的思路 3.完整代码 三、逆序数组 1.逆序思路 2..完整代码 冒泡排序是众多排序的一种,无论在C语言或者Java中都很常见,后续在数据结构中也会用到 1.冒泡排序介绍 (1)冒泡排

    2024年02月05日
    浏览(43)
  • 数据结构 ----- 折半插入排序

    ​​​​ ​ 折半插入排序 ​ 活动地址:CSDN21天学习挑战赛 一、折半插入排序 1.1 概念 折半插入排序 (Binary Insertion Sort)是对插入排序算法的一种改进。所谓插入排序,就是不断的依次将元素插入前面已排好序的序列中。 1.2 查找过程 折半插入排序的基本思想跟直接插入排

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包