python - 将切片分配给不同长度的另一个列表切片的Python时间复杂度
问题描述
假设我有两个名为a
and的列表b
,并且我想将b[j:j+len2]
带有 len2 元素的切片分配给a[i:i+len1]
带有 len1 元素的切片,那么这个操作的时间复杂度是多少?
a[i:i+len1] = b[j:j+len2]
解决方案
如果len1 == len2
那么那是O(len1)
因为它相当于循环:
for n in range(len1):
a[i+n] = b[j+n]
但是如果长度不同,则a
必须移动切片后的元素以打开或关闭b
切片所需的空间。如果列表在增长,则可能需要重新定位整个列表以腾出空间。这使得最坏情况变得复杂O(len(a) + len2)
。
推荐阅读
- pom.xml - 使用 jenkins 将 java 合同发布到协议流时出现未经授权的错误
- docker - 如何在没有“服务容器”的情况下在 Github Workflow 中使用 docker-compose/docker 连接到服务?
- sumologic - 如何计算和比较正则表达式匹配的数量
- php - MAMP 不启动任何服务器
- django - 使用 Nginx 的 Django 主机
- i3 - i3/sway - 如何绑定符号减号和等号
- java - getOutputStream 调用后连接重置
- spring - 如何让浏览器知道从spring服务器下载过程中发生了错误?
- metadata - Ag-grid 列定义和 `__metadata__` 属性
- react-native - 无法在 VS Code 的模拟器上运行我的应用程序