美文网首页
二分查找—Swift代码模板

二分查找—Swift代码模板

作者: Jabir_Zhang | 来源:发表于2022-05-11 22:37 被阅读0次

Swift代码模板

func binarySearch(_ nums: [Int], _ target: Int) -> Int {
    var l = 0
    var r = nums.count - 1
        
    while l <= r {
        let mid = (l + r) >> 1
        if nums[mid] == target {
            return mid
        } else if nums[mid] > target {
            r = mid - 1
        } else {
            l = mid + 1
       }
   }
   return -1
}

还有一个模板更高级一些,用于解决某些类型的问题:

func binarySearch(_ nums: [Int], _ target: Int) -> Int {
    var l = 0, r = nums.count        
    while l < r {
          let mid = l + (r - l) / 2
          if nums(mid) >= target {
                r = mid
            } else {
                l = mid + 1
            }
        }
    return r
}

复杂度分析

  • 时间复杂度:O(logn),其中 n 是数组的长度。
  • 空间复杂度:O(1)。

相关文章

  • 二分查找—Swift代码模板

    Swift代码模板 还有一个模板更高级一些,用于解决某些类型的问题: 复杂度分析 时间复杂度:O(logn),其中...

  • 二分查找

    [TOC] 二分查找的基础模板 二分查找靠左的Index基础模板 二分查找靠右的Index基础模板 二分查找插入t...

  • LeetCode 数组专题 1:二分查找

    二分查找法 说明:二分查找法在代码实现上有模板方法,一定要掌握。 1、二分查找法的使用前提:数组一定要是排好序的,...

  • 分治算法(swift二分法排序递归实现)

    二分查找 1、二分查找(Binary Search) 2、二分查找的基本思想 swift算法实现

  • Algorithm进阶计划 -- 二分搜索

    二分搜索二分搜索模板二分搜索运用 1. 二分搜索模板 二分搜索(二分查找)也称折半查找(Binary Search...

  • 二分查找模式

    二分查找通用的模板int mid = (left + right) / 2容易溢出 二分查找的通用模板 使用“左边...

  • 二分查找总结

    二分查找是在每次匹配后,将查找的空间一分为二的算法,二分查找应该是有序的数组进行查找. 二分查找模板 1. 模板一...

  • LeetCode 专题 :二分查找

    LeetCode 第 704 题是二分查找的模板问题。 LeetCode 第 704 题:二分查找 传送门:704...

  • python笔试面试项目实战2020百练1二分查找法(虾皮面试题

    题目1:请补充完整如下非递归二分查找的代码 题目2:请补充完整如下递归二分查找的代码 基础 二分查找是一种算法,其...

  • 查找算法

    查找算法 1顺序查找 2二分查找 2.1二分查找思路分析 2.2代码实现 3插值查找 3.1插值查找原理介绍: ​...

网友评论

      本文标题:二分查找—Swift代码模板

      本文链接:https://www.haomeiwen.com/subject/hebjurtx.html