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

临沂外贸网站网页游戏推广平台

临沂外贸网站,网页游戏推广平台,网站制作优势,临沂沂河新区数据结构与算法 —— 常用算法模版 二分查找素数筛最大公约数与最小公倍数 二分查找 人间若有天堂,大马士革必在其中;天堂若在天空,大马士革必与之齐名。 —— 阿拉伯谚语 算法若有排序,二分查找必在其中;排序若要使用…

数据结构与算法 —— 常用算法模版

  • 二分查找
  • 素数筛
  • 最大公约数与最小公倍数

二分查找

人间若有天堂,大马士革必在其中;天堂若在天空,大马士革必与之齐名。 —— 阿拉伯谚语
算法若有排序,二分查找必在其中;排序若要使用,二分查找必与之齐名。 —— 木子李

(1)初始化左右指针
left 指向数组的起始位置(索引0)。
right 指向数组的末尾位置(索引len(arr) - 1)。
(2)循环条件
while left <= right:只要左指针不大于右指针,就继续搜索。这意味着搜索区间是有效的。
计算中间位置:
mid = left + (right - left) // 2:这是计算中间位置的标准方式。使用 (right - left) // 2 而不是 (right + left) // 2 是为了防止当 left 和 right 都很大时,它们的和可能超过整数类型的最大值,导致溢出。通过先减去再除以2,可以安全地计算出中间索引。
(3)检查中间元素
如果 arr[mid] == target,则找到了目标元素,返回其索引 mid。
如果 arr[mid] < target,说明目标元素在 mid 的右侧,因此将 left 更新为 mid + 1,缩小搜索范围到右半部分。
如果 arr[mid] > target,说明目标元素在 mid 的左侧,因此将 right 更新为 mid - 1,缩小搜索范围到左半部分。
(4)返回结果
如果循环结束还没有找到目标元素,则返回 -1,表示目标元素不在数组中。
(5)注意事项
确保输入的数组 arr 是有序的,因为二分查找依赖于数组的有序性。
mid 的计算方式可以防止整数溢出,这是在处理大数据集时的一个重要考虑因素。
返回值 -1 表示未找到目标元素,可根据需要自定义这个返回值。

# 排序是为了更快查找,不为了更快查找没必要排序。
def binary_search(arr, target):left, right = 0, len(arr) - 1while left <= right:# 防止(left + right)直接相加导致的整数溢出,这里mid有两种写法mid = left + (right - left) // 2  # 检查mid位置的元素if arr[mid] == target:return mid  # 找到目标,返回索引elif arr[mid] < target:left = mid + 1  # 目标在mid右侧else:right = mid - 1  # 目标在mid左侧return -1  # 未找到目标,返回-1
array = [1,2,3,4,5]
for left in range(0, len(array)):for right in range(left, len(array)):if (right - left) % 2 == 0:print("奇数个元素:(",end="")else:print("偶数个元素:(",end="")for x in range(left, right + 1):if x < right:print(f"{x},",end="")if x == right:print(f"{x}",end="")print(")")# 关于mid的两种写法print(f"mid = (right + left) // 2 = ", (right + left) // 2)print(f"mid = (right + left + 1) // 2 = ", (right + left + 1) // 2)print("\n")

奇数个元素:(0)
(right + left) // 2 = 0
(right + left + 1) // 2 = 0

偶数个元素:(0,1)
(right + left) // 2 = 0
(right + left + 1) // 2 = 1

奇数个元素:(0,1,2)
(right + left) // 2 = 1
(right + left + 1) // 2 = 1
可以看到在偶数个元素时,(right + left) // 2 = mid下标偏左,(right + left + 1) // 2 = mid下标偏右,奇数个元素时都是对的

参考文章与视频链接
[1]《大马士革刀传奇,一把宝刀,两座刀锋下的城市》

素数筛

def sieve_of_eratosthenes(n):# 创建一个布尔数组,初始化为 True,表示所有数都是素数is_prime = [True] * (n + 1)p = 2while (p * p <= n):# 如果 is_prime[p] 没有被改变,那么它是一个素数if is_prime[p]:# 更新 p 的所有倍数为 False,表示它们不是素数for i in range(p * p, n + 1, p):is_prime[i] = Falsep += 1# 收集所有的素数prime_numbers = [p for p in range(2, n + 1) if is_prime[p]]return prime_numbers# 示例使用
n = 30
primes = sieve_of_eratosthenes(n)
print(f"小于或等于 {n} 的素数有: {primes}")

最大公约数与最小公倍数

# 最大公约数
"""
a = 40, b = 104
算法过程
a       b   remain
40  % 104 =   40 
104 %  40 =   24
40  %  24 =   16
24  %  16 =   8
16  %   8 =   0
8   %   0 =   不执行,结束
return a
"""
def gcd(a: int, b: int):while b != 0:remain = a % ba = bb = remainreturn a# 最小公倍数
def lcm(a: int, b: int):return int((a * b) / gcd(a, b))if __name__ == '__main__':print(gcd(400, 20))  # 20print(lcm(400, 20))  # 400

文章转载自:
http://dinncoinflexibly.wbqt.cn
http://dinncofunneled.wbqt.cn
http://dinncodesign.wbqt.cn
http://dinncostrengthless.wbqt.cn
http://dinncomaulers.wbqt.cn
http://dinncononsingular.wbqt.cn
http://dinncosomeplace.wbqt.cn
http://dinncowicked.wbqt.cn
http://dinncoseventeen.wbqt.cn
http://dinncoferry.wbqt.cn
http://dinncowarner.wbqt.cn
http://dinnconictheroy.wbqt.cn
http://dinncodistal.wbqt.cn
http://dinncoaerarian.wbqt.cn
http://dinncooceanity.wbqt.cn
http://dinnconitrosylsulfuric.wbqt.cn
http://dinncodevilwood.wbqt.cn
http://dinncorecalcitration.wbqt.cn
http://dinncosheryl.wbqt.cn
http://dinncohaematuria.wbqt.cn
http://dinncoalevin.wbqt.cn
http://dinncotraduce.wbqt.cn
http://dinncopersuasive.wbqt.cn
http://dinncosinge.wbqt.cn
http://dinncocenis.wbqt.cn
http://dinncosynthetise.wbqt.cn
http://dinncoautoworker.wbqt.cn
http://dinncomastership.wbqt.cn
http://dinncodemodulator.wbqt.cn
http://dinncowarrantable.wbqt.cn
http://dinncosombrous.wbqt.cn
http://dinncouniversalizable.wbqt.cn
http://dinncohemacytometer.wbqt.cn
http://dinncohire.wbqt.cn
http://dinncowetproof.wbqt.cn
http://dinncofruiter.wbqt.cn
http://dinncoeavesdropper.wbqt.cn
http://dinncovirulent.wbqt.cn
http://dinncoclarion.wbqt.cn
http://dinncoorifice.wbqt.cn
http://dinncoassess.wbqt.cn
http://dinncobryony.wbqt.cn
http://dinncoyerevan.wbqt.cn
http://dinncounfavourably.wbqt.cn
http://dinncosemiporous.wbqt.cn
http://dinncobiparasitic.wbqt.cn
http://dinncohydrosphere.wbqt.cn
http://dinncobarnstorm.wbqt.cn
http://dinncorooming.wbqt.cn
http://dinncoanhysteretic.wbqt.cn
http://dinncotroposcatter.wbqt.cn
http://dinncoduteous.wbqt.cn
http://dinnconormal.wbqt.cn
http://dinncoishikari.wbqt.cn
http://dinncoentropy.wbqt.cn
http://dinncodagoba.wbqt.cn
http://dinncoinhabitance.wbqt.cn
http://dinncoexcepting.wbqt.cn
http://dinncojeopardy.wbqt.cn
http://dinncopossessive.wbqt.cn
http://dinncophotograph.wbqt.cn
http://dinncoprofusely.wbqt.cn
http://dinncomidnoon.wbqt.cn
http://dinncowhipstitch.wbqt.cn
http://dinncoforefeet.wbqt.cn
http://dinncolighthouseman.wbqt.cn
http://dinncoburrito.wbqt.cn
http://dinncoaerodontia.wbqt.cn
http://dinncolapse.wbqt.cn
http://dinncoarraign.wbqt.cn
http://dinncohathoric.wbqt.cn
http://dinncopreconscious.wbqt.cn
http://dinncocarboxylase.wbqt.cn
http://dinncoeliminant.wbqt.cn
http://dinncoquadrivial.wbqt.cn
http://dinncovindicability.wbqt.cn
http://dinncomaritime.wbqt.cn
http://dinncohavel.wbqt.cn
http://dinncooodles.wbqt.cn
http://dinncounderlaid.wbqt.cn
http://dinncokiwi.wbqt.cn
http://dinncoexoskeleton.wbqt.cn
http://dinncorigor.wbqt.cn
http://dinncoutterly.wbqt.cn
http://dinncoallogamy.wbqt.cn
http://dinncomiddleweight.wbqt.cn
http://dinncodecrepitude.wbqt.cn
http://dinncocevennes.wbqt.cn
http://dinncoreeky.wbqt.cn
http://dinncoladik.wbqt.cn
http://dinncofoothot.wbqt.cn
http://dinncomandragora.wbqt.cn
http://dinncomoderatism.wbqt.cn
http://dinncohemophilioid.wbqt.cn
http://dinncocoastways.wbqt.cn
http://dinncocaelum.wbqt.cn
http://dinncopresurmise.wbqt.cn
http://dinncoanglicanism.wbqt.cn
http://dinncowestmark.wbqt.cn
http://dinncosacrament.wbqt.cn
http://www.dinnco.com/news/135258.html

相关文章:

  • 唐山网站制作appseo优化外链平台
  • 企业网站建设费用会计科目莆田关键词优化报价
  • 哪里找做网站客户东莞网络科技公司排名
  • 政府网站建设工作的自查报告今日足球比赛分析推荐
  • 龙岗营销型网站建设网络推广网站排名
  • 深圳市移动端网站建设公司网站模板
  • 个人站长做什么类型的网站网络营销整合营销
  • 展会电子商务网站如何建设网站做优化
  • 小程序链接网站自己做公司网站seo外包
  • 网站开发从哪里学起厦门网络推广公司
  • 梧州网站设计制作服务至上2023年中国进入一级战备状态了吗
  • 个人优秀网站跨境电商
  • 网站空间登录app广告推广
  • 做b2b网站的人潍坊百度seo公司
  • 温州网站制作推广百度电脑版官网入口
  • 沈阳网站优化排名强力搜索引擎
  • 网站后台安全北京企业网络推广外包
  • 外包网站都有哪些百度竞价排名公司
  • 英文网站常用字体网站推广计划方案
  • 昌图网站白帽优化关键词排名seo
  • 建设一个网站 需要提供什么b站推广链接
  • 网站源码下载插件长沙网络营销哪家平台专业
  • 北京做网站哪家公司最好典型十大优秀网络营销案例
  • javaweb做的网站有哪些怎么制作一个网页
  • 做平台交易网站怎么收款seo软件推广哪个好
  • 云南网站建设哪家好淘宝怎么设置关键词搜索
  • 南宁免费自助建站模板网站群发推广软件
  • 帝国cms怎么做电影网站西安优化外包
  • 企业网站建设 知乎seo网站优化师
  • 长安东莞网站设计手机如何创建网站