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

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


顺序查找

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

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

二分查找法

什么是二分查找算法?

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

查找23:

TestSearch.cs

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;
                }
                else
                    return 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) ||

相关推荐
小哈里12 小时前
【知识】从学科到实践:自然・工程・社科・人文|算法・研发・产品・品牌设计
程序人生·算法·产品·设计·工程
小π军12 小时前
最大重叠区间数量
数据结构·算法
镜像视界(浙江)科技有限公司13 小时前
《视频孪生之上:二维展示终结,三维空间计算重构城市逻辑》——跨摄像连续表达 × 三角测量厘米级定位 × 动态轨迹建模,构建新一代城市空间
大数据·人工智能·算法·矩阵·音视频·空间计算
a1879272183113 小时前
【算法】双指针与滑动窗口(二):滑动窗口——吃进、判定、吐出
算法·leetcode·双指针·滑动窗口·原理·模板·算法讲解
铭哥的编程日记13 小时前
从一道 LeetCode Hard 到吃透一类题:加权区间调度「排序 + 二分 + DP」
算法·leetcode·职场和发展
Logic10113 小时前
C语言/数据结构字符串题解:找出DNA序列中未配对的独特序列——排序+遍历(O(nlogn))
c语言·数据结构·字符串·数组·排序·时间复杂度·算法题
Navigator_Z14 小时前
LeetCode //C - 1248. Count Number of Nice Subarrays
c语言·算法·leetcode
wzdark14 小时前
基于链表的内存池设计与内存复用机制4
java·数据结构·链表
wzdark14 小时前
多维数组在算法设计中的存储映射问题4
算法
Phil32315 小时前
多智能体不是越多越好:Google《Towards a Science of Scaling Agent Systems》论文深度解读
算法