首页 > 编程语言 >记录用C#写折半查找算法实现

记录用C#写折半查找算法实现

时间:2023-03-03 13:56:04浏览次数:37  
标签:折半 right C# mid int 查找 left

折半查找算法

前言

最近要考试了,重新回顾一下之前学的算法,今天是折半查找,它的平均比较次数是Log2 n

思想

给定一个有序数组A[0..n-1],和查找值K,返回K在A中的下标。

折半查找需要指定3个指针,left、right、mid,分别是左指针指向下标0,右指针指向元素末尾,mid中间值指向(left+right)/ 2向下取整。

如果A[mid] > K,中间值大于要找的K值,移动right指针,right = mid - 1

如果A[mid] < k,中间值小于要找的K值,移动left指针,left = mid + 1

如果A[mid] == K,则返回 mid

算法实现

public static void Main(string[] args){
    int[] A = {1,2,3,6,7,11,23,56};
    int K = 23;
    Console.WriteLine(Search(A,K));
}
public static int Search(int[] A,int K){
    int left = 0;
    int right = A.Length - 1;
    while(left <= right){
        int mid = (left + right) / 2;
        if(A[mid] == K){ return mid;}
        else if(A[mid]>K){
            right = mid - 1;
        }else{
            left = mid + 1;
        }
    }
    return -1;
}

结尾

有任何错误欢迎指正.

标签:折半,right,C#,mid,int,查找,left
From: https://www.cnblogs.com/ZYPLJ/p/17175345.html

相关文章

  • 如何在 JavaScript 中使用媒体查询
    前言说起媒体查询想必大家最先想到的都是CSS中@media,没错,这是我们最常用的媒体查询方法,主要用来为我们的网站做适配处理。比如:h1{font-size:2rem;color:green;......
  • C/C++学生考勤系统[2023-03-03]
    C/C++学生考勤系统[2023-03-03]功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并......
  • css实现正方体旋转
    <!--物品入库-待入库--><template>  <divclass="content">    <button@click="onImg">图片切换</button>    <divclass="cubeBox">  ......
  • C/C++ 数据结构使用数组实现队列的基本操作
    //使用数组实现队列#include<iostream>#include<Windows.h>usingnamespacestd;#defineMAXSIZE5//队列的最大容量typedefintDataType;//队列中的元素类型......
  • 第十三节:跨域产生的原因及常用跨域方案的总结(同源部署、CORS、代理、Nginx等)
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblog......
  • PACS系统各个功能介绍--九五小庞
    PACS系统是HIS系统的重要组成部分,医生可在电脑上查看患者的医学影像报告。■支持心电DICOM,心电图浏览和处理(显示格式、纸速、增益、滤波、测量等)。■支持MPR、CPR、......
  • mpffinance常用命令参数
    主题相关查看可用预设主题mpf.available_styles()默认的主题包括:'binance','blueskies','brasil','charles','checkers','classic','default','ibd','kenan','mike','n......
  • 医院PACS系统--九五小庞
    一、什么是PACS系统医学影像系统(PictureArchivingandCommunicationSystems,简称PACS)是应用在医院影像科室的系统,主要的任务就是把日常产生的各种医学影像(包括核磁,CT,超声,......
  • CentOS7 安装Chrome
    转载自:https://blog.csdn.net/ling1998/article/details/1239517261、权限若不是root权限,需要在root下执行为用户授权命令,我直接使用root登录2、下载[root@localhosts......
  • 安装SQL时在功能选择时提示出"为 INSTALLSHAREDDIR 参数指定的目录“C:\Program File
    C盘被压缩了,可取消压缩:打开“我的电脑”-右键单击压缩过的分区-在“常规”选项卡下取消“压缩驱动器以节约磁盘空间”前的小勾。如果想取消单个文件夹的加密,可以在文件......