当前位置: 首页 > news >正文

查找算法——二分查找法

一、介绍

       首先需要将查找的数据排好序,再进行二分查找法来进行查找,二分查找是将数据范围不断分割为两份,不断比较中间值与待查找值的大小来确定其在哪个区间范围的一种方法。例如:在一组数据(1,4,5,6,7,9,13,15)中查找一个数据4的方式,如下:

二、代码实现:

using System.Collections.Generic;
using UnityEngine;public class DichotomyLookUpArithmetic : MonoBehaviour
{List<int> data;[SerializeField]int dataLength = 100;int needData = 0;private void Start(){data = new List<int>(dataLength);InitData(dataLength);DichotomyLookUp(needData);DichotomyLookUp(needData + 1);}void InitData(int datalen){int sum = 0;for (int i = 0; i < datalen; i++) {sum += Random.Range(0,20);data.Add(i + sum);if (sum > 400 && needData == 0)needData = i + sum;}}int DichotomyLookUp(int v){int low, mid, high;low = 0;high = data.Count - 1;if (v < data[low] || v > data[high]){Debug.LogError("要查找的值不在数据内");return -1;}while (low < high) {mid = (low + high) / 2;//判断要查找的值与mid对应值的大小if (data[mid] < v){//如果数据比中间的值大,则数据在mid与high之间low = mid + 1;}else if (data[mid] > v){//如果数据比中间的值小,则数据在Low与mid之间high = mid - 1;}else{Debug.Log("已找到数据");return data[mid];}}Debug.LogError("没有符合的数据");return -1;}
}

参考书籍:

清华大学出版社-图书详情-《图解数据结构--使用C#》 (tsinghua.edu.cn)

http://www.lryc.cn/news/189076.html

相关文章:

  • 大数据——Spark Streaming
  • graphviz 绘制二叉树
  • STM32 PA15/JTDI 用作普通IO,烧录口不能使用问题解决
  • 【ARM Coresight 系列文章 9 -- ETM 介绍 1】
  • 设计模式 - 中介者模式
  • HttpServletRequest对象与RequestDispatcher对象
  • Spring Boot启动流程
  • ARM day5
  • 流程引擎概述及组成
  • 定时任务Apscheduler实践案例
  • C#学习系列相关之多线程(五)----线程池ThreadPool用法
  • 京东数据接口|电商运营中数据分析的重要性
  • C++入门(1)
  • redis-6.2.7 集群安装3主3从
  • 【动态库】Ubuntu 添加动态库的搜索路径
  • 95740-26-4|用于体内DNA合成的探针F-ara-EdU
  • Ajax使用流程
  • 1808_ChibiOS基本的架构介绍
  • 曦力音视频转换工具Xilisoft Video Converter Ultimate mac中文版
  • Spring MVC 五:DispatcherServlet初始化之 mvc:annotation-driven
  • uniapp EventChannel 页面跳转参数事件传递navigateBack,navigateTo 成功后通知事件区别
  • 【C++ Primer Plus学习记录】指针——使用delete释放内存
  • 2023 NOIP A层联测9 - 风信子 题解
  • 岩土工程安全监测无线振弦采集仪在无线组网的关键要点
  • 代码随想录Day14 LeetCodeT110平衡二叉树 T257二叉树的所有路径 T404 左叶子之和
  • C语言自定义类型_枚举联合(3)
  • asp.net网上销售系统VS开发mysql数据库web结构c#编程Microsoft Visual Studio计算机毕业设计
  • 【Windows】RPC调用过程实例详解
  • 动手学强化学习第2章多臂老虎机
  • 钡铼BL124EC实现EtherCAT转Ethernet/IP的优势