折半查找、

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

描述

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

输入

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

输出

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

输入样例 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模板网!

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

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

相关文章

  • 折半查找、

    描述 给定一个已按从大到小排序好的数组和一个数,使用折半查找算法,输出该数在数组中的位置。如果该数不在数组中,则输出“无此数”。 输入 输入为两行,第一行包含多个整数,用空格分隔,表示已排序好的数组;第二行为需要查找的数。 输出 输出一个整数,表示

    2024年02月14日
    浏览(67)
  • C语言——折半查找法

    假如现在有一组数据,你想要查询这个具体某一个数据在这一堆数据中的所在位置,这个时候就需要程序在这一组数据中,找到与想要查找的目标数据相匹配的那个数据,然后返回相对应的位置。如果将问题再细化简化一点,假如现在有一组有顺序的数字,需要你编写程序找

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月09日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包