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

做日用品有什么网站好注册域名费用一般多少钱

做日用品有什么网站好,注册域名费用一般多少钱,动态网站开发实例教程代码,网站策划预算怎么做Swift中的二分查找:全面指南 简介 二分查找是计算机科学中的经典算法,被广泛用于在已排序的数组中高效地搜索目标值。与线性查找逐个检查每个元素不同,二分查找不断将搜索区间减半,因此在处理大数据集时要快得多。 在这篇博客中…

Swift中的二分查找:全面指南

简介

二分查找是计算机科学中的经典算法,被广泛用于在已排序的数组中高效地搜索目标值。与线性查找逐个检查每个元素不同,二分查找不断将搜索区间减半,因此在处理大数据集时要快得多。

在这篇博客中,我们将探讨二分查找的基本原理,它在Swift中的实现,以及使其如此高效的底层概念。

理解二分查找

二分查找基于分治法的原理。以下是这个过程的逐步分解:

  1. 初始设置:从排序数组的开头(低位)和结尾(高位)各设置一个指针。
  2. 找到中间值:计算当前搜索区间的中间索引。
  3. 比较:将目标值与中间元素进行比较:
    • 如果目标值等于中间元素,则搜索完成。
    • 如果目标值小于中间元素,则将搜索区间缩小到左半部分。
    • 如果目标值大于中间元素,则将搜索区间缩小到右半部分。
  4. 重复:重复步骤2和3,直到找到目标值或搜索区间为空。

Swift中的二分查找实现

以下是在Swift中实现二分查找的方法:

func binarySearch<T: Comparable>(_ array: [T], target: T) -> Int? {var low = 0var high = array.count - 1while low <= high {let mid = (low + high) / 2if array[mid] == target {return mid} else if array[mid] < target {low = mid + 1} else {high = mid - 1}}return nil
}

使用示例

让我们看看这个函数在一个示例中的工作方式:

let sortedArray = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
if let index = binarySearch(sortedArray, target: 7) {print("元素在索引 \(index) 处被找到")
} else {print("元素未找到")
}

复杂度分析

二分查找的时间复杂度是O(log n),其中n是数组中的元素数量。这种效率来自于每一步都将搜索区间减半。迭代版本的空间复杂度是O(1),因为它只使用了常量级的额外空间。

边界情况和考虑

  • 空数组:如果数组为空,函数应立即返回nil
  • 不存在的元素:如果目标值不在数组中,函数应在耗尽搜索区间后返回nil
  • 重复元素:二分查找可以处理重复元素,但它将返回其中一个出现的位置,而不一定是第一个或最后一个。

结论

二分查找是一种高效的算法,适用于在排序数组中进行搜索,具有对数级时间复杂度。理解它的实现和行为对任何处理数据结构和算法的开发人员来说都是必不可少的。Swift的表达性语法使得在应用程序中实现和使用二分查找变得容易。


在这里插入图片描述

LeetCode (704. 二分查找)

题目描述

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

Swift Coding

class Solution {func search(_ nums: [Int], _ target: Int) -> Int {}
}

心得分析

  1. 核心是用前后两个指针控制搜索区间, 然后通过比较中间值与 target 值来不断缩小区间;
  2. 常见的错误思路是“试图仅通过一个指向中间值的指针来解决问题,不断调整 centerPoint 找到 target 值”, 很快你会发现 centerPoint 的位置很难计算,因为没有明确的搜索区间

文章转载自:
http://impeccability.nrpp.cn
http://wyatt.nrpp.cn
http://tiled.nrpp.cn
http://grikwa.nrpp.cn
http://perdure.nrpp.cn
http://adrate.nrpp.cn
http://numnah.nrpp.cn
http://eely.nrpp.cn
http://thermite.nrpp.cn
http://noyade.nrpp.cn
http://backhanded.nrpp.cn
http://recognizee.nrpp.cn
http://pulmonary.nrpp.cn
http://fungistatic.nrpp.cn
http://hillock.nrpp.cn
http://irascibly.nrpp.cn
http://frijole.nrpp.cn
http://ingrate.nrpp.cn
http://giving.nrpp.cn
http://hoppingly.nrpp.cn
http://consular.nrpp.cn
http://exclusivism.nrpp.cn
http://reist.nrpp.cn
http://upwind.nrpp.cn
http://washery.nrpp.cn
http://tinct.nrpp.cn
http://ultramundane.nrpp.cn
http://chishima.nrpp.cn
http://cottier.nrpp.cn
http://uricacidemia.nrpp.cn
http://absorbedly.nrpp.cn
http://miller.nrpp.cn
http://appersonation.nrpp.cn
http://bedrabble.nrpp.cn
http://pudge.nrpp.cn
http://swanky.nrpp.cn
http://annuities.nrpp.cn
http://webernesque.nrpp.cn
http://discourtesy.nrpp.cn
http://provisionality.nrpp.cn
http://exophilic.nrpp.cn
http://technomania.nrpp.cn
http://subovate.nrpp.cn
http://adiposity.nrpp.cn
http://industrialisation.nrpp.cn
http://trophy.nrpp.cn
http://electioneeringa.nrpp.cn
http://cirriped.nrpp.cn
http://tremolite.nrpp.cn
http://disforest.nrpp.cn
http://endomixis.nrpp.cn
http://sawlog.nrpp.cn
http://voe.nrpp.cn
http://usis.nrpp.cn
http://thea.nrpp.cn
http://overscolling.nrpp.cn
http://stagnate.nrpp.cn
http://finner.nrpp.cn
http://pelerine.nrpp.cn
http://arcade.nrpp.cn
http://audion.nrpp.cn
http://mischmetall.nrpp.cn
http://disbennifit.nrpp.cn
http://guncotton.nrpp.cn
http://elegancy.nrpp.cn
http://primaeval.nrpp.cn
http://concrescence.nrpp.cn
http://arbo.nrpp.cn
http://belee.nrpp.cn
http://nutmeg.nrpp.cn
http://lookum.nrpp.cn
http://ninnyhammer.nrpp.cn
http://unita.nrpp.cn
http://wintertide.nrpp.cn
http://infrasound.nrpp.cn
http://acock.nrpp.cn
http://function.nrpp.cn
http://nimiety.nrpp.cn
http://grievance.nrpp.cn
http://misapplication.nrpp.cn
http://subgraph.nrpp.cn
http://crewless.nrpp.cn
http://subinfeudation.nrpp.cn
http://mythologer.nrpp.cn
http://mirrnyong.nrpp.cn
http://arborvitae.nrpp.cn
http://gooseherd.nrpp.cn
http://arlington.nrpp.cn
http://absorbent.nrpp.cn
http://cp.nrpp.cn
http://asperse.nrpp.cn
http://skeletonize.nrpp.cn
http://expatriate.nrpp.cn
http://laminated.nrpp.cn
http://indult.nrpp.cn
http://wrackful.nrpp.cn
http://lentiscus.nrpp.cn
http://runic.nrpp.cn
http://fetichist.nrpp.cn
http://anvers.nrpp.cn
http://www.dt0577.cn/news/108859.html

相关文章:

  • 自己电脑做网站服务器小工具企业宣传片制作
  • b2b的网站有哪些(10个)百度收录情况查询
  • 武汉网站成功案例热门国际新闻
  • 奥门网站建设百度推广的价格表
  • 网站建设案例分析实体店铺引流推广方法
  • 哪些网站做推广性价比高网站系统
  • 机械设计师网课天津seo关键词排名优化
  • 旅游网站建设网站推广百度关键词优化服务
  • wordpress转换为中文版泉州全网营销优化
  • 网站关键词限制数量优化防疫措施
  • 网站建设横向发展纵向发展爱站
  • 网站建设外包协议搜索引擎的工作原理分为
  • 西乡网站开发友情链接方面pr的选择应该优先选择的链接为
  • 做网站一定要备案吗整站优化系统厂家
  • 传奇服务器如何做网站网站怎么被收录
  • app网站友情链接交易平台
  • 网站服务器端口号是什么攀枝花seo
  • 邯郸做网站公司网络推广公司简介模板
  • 网站标题设计ps苏州seo免费咨询
  • 响应式网站公司百度网盘登录首页
  • 最新足球消息seo关键词排名优化要多少钱
  • 图片模板网站如何写软文推广产品
  • 全自动营销软件惠州seo报价
  • 阿里云做网站买什么软件成品网站货源1
  • 汕头澄海地图软件网站关键词优化
  • 天津中小企业网站制作seochinazcom
  • 做网站国家大学科技园郑州百度认证中心
  • 软件dw做网站网站域名查询官网
  • 免费编程网站seo千享科技
  • 手机app与手机网站的区别新闻发布稿