首页 > 其他分享 >二分查找法 - C语言

二分查找法 - C语言

时间:2024-03-19 13:29:56浏览次数:19  
标签:二分 arr right int mid C语言 查找 left

二分查找法

比如我买了件300以下的衣服,你好奇,想知道到底多少钱,我让你猜,你会怎么猜呢?

答案:你每次会猜中间数,不会从1开始猜。

#include <stdio.h>
int main() //二分查找法(折半查找法)
{
	int left = 0;
	int mid = 0;
	int n = 0;
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int right = sizeof(arr) / sizeof(arr[0]) - 1;
	scanf("%d", &n);
	while (left <= right)
	{
		mid = (left + right) / 2;
		if (arr[mid] > n)
		{
			right = mid - 1;
		}
		else if (arr[mid] < n)
		{
			left = mid + 1;
		}
		else
		{
			printf("找到了,它在数组下标为%d上",mid);
			break;
		}
	}
	if (left > right)
	{
		printf("抱歉,没有找到您要的数字");
	}
	return 0;
}

标签:二分,arr,right,int,mid,C语言,查找,left
From: https://blog.csdn.net/zhongziqia/article/details/136839589

相关文章

  • 全国计算机等级考试二级C语言(考试大纲)
    全国计算机等级考试(NationalComputerRankExamination,简称NCRE),由教育部教育考试院(原教育部考试中心)主办,面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平考试体系。级别分为:一级、二级、三级和四级。二级:程序设计/办公软件高级应用级。考核内容包括计......
  • C语言结结结结结构体!
    P.S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。P.S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。  结构体一.结构体类型简述。二.结构体类型的初始化。三.结构体成员的访问。四.结构体的内存对齐。4.1.结构体的对齐规则......
  • 查找事物处理来源
    CREATEORREPLACEFUNCTIONcux_trans_source(p_trans_idNUMBER)RETURNVARCHAR2ISln_type_idNUMBER;ln_source_line_idNUMBER;ln_trx_source_line_idNUMBER;ln_source_type_idNUMBER;ln_transaction_source_idNUMBER......
  • C语言程序设计(第二版)学习笔记——第二章
    第二章算法2.1算法的概念广义的来说,为解决问题而采取的方法和步骤称为算法。针对不同的问题由不同的算法,同一问题也可以有不同的算法。计算机中算法是指计算机语言解决问题的方法和步骤。用计算机处理问题一般过程如下:(1)分析问题;(2)确定处理方案;(3)确定算法;(4)用计算机语言编写......
  • 【C语言】猜数字游戏
    代码如下:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>#include<time.h>voidgame(){ intr=rand()%100+1; intguess=0; while(1) { printf("请猜数字>:"); scanf("%d",&guess);......
  • 常用命令--查找软件路径(同时可查看命令是否有权限)--which
    常用命令--查找软件路径(同时可查看命令是否有权限)--whichwhichwhich命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以......
  • C语言wyh的物品
    题目描述wyh学长现在手里有n 个物品,这n 个物品的重量和价值都告诉你,然后现在让你从中选取k 个,问你在所有可能选取的方案中,最大的单位价值为多少(单位价值为选取的k个物品的总价值和总重量的比值)输入描述:输入第一行一个整数T(1≤T≤10)接下来有T组测试数据,对于每......
  • C语言数据结构链表(无头结点)功能实现(增,删,改,查)
    #include<stdio.h>#include<stdlib.h>typedefstructLNode{   int data;   struct   LNode*next;}LNode,*LinkList; boolInitList(LinkList&L){    L=NULL;    return0; }boolinsert(LinkList&L,inti,intx){       ......
  • Python 递归函数实现二分法,带思路解释
            二分法可以大大提升对有序数列的查找,传统的迭代查找会挨个比较数列中的值,如果数列较为庞大会影响查询效率。二分法每次取数列的中间数与待查找数字比较大小,以升序排列为例子 首先要考虑数列长度的奇偶性。        奇数取中间位置的数字,如果比待查找......
  • 深入C语言指针,使代码更加灵活(三)
    一、函数指针1.1函数的地址在讲解函数指针变量之前,我们先思考一下什么是函数指针变量,我们可以同数组指针变量进行类比:数组指针—是指针—是存放指向数组的指针,是存放数组地址的指针;函数指针—是指针—是存放指向函数的指针,是存放函数地址的指针;数组是有地址的,那么函数......