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

《C#数据结构与算法》—二分查找法和顺序查找

6-1 二分查找和顺序查找、6-2 查找算法性能比较


顺序查找

功能解释:所有在 arr2 中出现但不在 arr1 中出现的元素。

  • OrderSearch函数:在 arr 数组中线性查找 target,找到返回数组的索引i,未找到返回-1。
  • 主函数:遍历 arr2 的每个元素,逐个检查是否存在于 arr1 中,并输出在 arr2 不在arr1中的元素。

二分查找法

什么是二分查找算法?

只能对有序排列进行高效查找(排序算法的作用)

查找23: 

TestSearch.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace DataStucture
{class TestSearch{public static int BinarySearch(int[] arr,int target){int l = 0;int r = arr.Length - 1;while (l<=r){//int mid = (r+l)/2;//防止产生整形的溢出int mid = l + (r - l) / 2;if (target < arr[mid]){r = mid - 1;}else if (target > arr[mid]){l = mid + 1;}elsereturn mid;}return -1;}}
}

查找50:

查询算法复杂度分析 

顺序查找法:最坏的时间复杂度。也就是对于未命中查找的情况,需要遍历所有的元素查询。

二分查找法:最坏的时间复杂度。也就是对于未命中查找的情况。                                                                        每次比较都将数据规模缩小一半。

最坏情况(未命中查找):

  • 对于15个元素使用顺序查找最多进行了15次比较。
  • 对于15个元素使用二分查找最多进行了 4 次比较。      log2 15 =4                                                  对于n个元素使用二分查找最多进行了log2n次比较。
顺序查找法O(n)
二分查找法O(log n)
O(1)<O(log n)<O(n)

http://www.xdnf.cn/news/157141.html

相关文章:

  • 365打卡第R3周: RNN-心脏病预测
  • 代码随想录算法训练营第60期第十八天打卡
  • thinking-intervention开源程序用于DeepSeek-R1等推理模型的思维过程干预,有效控制推理思考过程
  • RAG技术与应用---0426
  • Qt Charts 绘制曲线图示例
  • 创新项目实训开发日志5
  • 基于STM32单片机PWM讲解(HAL库)
  • HTTP 协议深度解析:从基础到实战的完整指南
  • 运算放大器版图设计与后仿真实战指南
  • 如何在项目中使用双token机制?
  • Python类和对象三(十二)
  • 多线程(1)——认识线程
  • 交换机之配置系统基本信息(Basic Information of the Configuration System for Switches)
  • 架构进阶:105页PPT学习数字化转型企业架构设计手册【附全文阅读】
  • 【Python】使用uv管理python虚拟环境
  • 【计算机网络】信息时代的数字神经系统
  • 新电脑工作环境初始化2025
  • Python基于Django的全国二手房可视化分析系统【附源码】
  • 搭建spark-local模式
  • html css js网页制作成品——HTML+CSS+js美甲店网页设计(5页)附源码
  • 毕业项目-基于深度学习的入侵检测系统
  • 北斗导航 | Transformer增强BiLSTM网络的GNSS伪距观测量误差探测
  • 冯·诺依曼和哈佛架构​​​​两种架构的总线组成及核心特点
  • LiveCharts.WPF图表模块封装
  • asammdf 库的信号处理和数据分析:深入挖掘测量数据
  • 自然语言处理——语言转换
  • Redis常见面试题——List对象
  • 26 Arcgis软件常用工具有哪些
  • JUC多线程:辅助类CountDownLatch、CyclicBarrier、Semaphore实战指南(附保姆级代码)
  • AIGC在自动化测试领域的创新应用:智能生成测试用例与缺陷预测