You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python数组左旋转代码运行慢,嵌套循环与浅拷贝哪个是核心优化点?

核心问题解答

你对复杂度的计算存在误区:嵌套循环的单次内层遍历是O(n),浅拷贝的单次操作也是O(n),两者都被包裹在外层的d次循环中,所以总时间复杂度是O(dn),当d的量级和数组长度n接近时,整体就是O(n²)* 级别。嵌套循环和重复浅拷贝都是高耗时来源,不存在明确的主次之分,核心问题是你选择了「逐次左移1位、重复执行d次」的低效率实现思路。

优化方案

数组左旋转d位的操作完全可以通过切片一次性完成,不需要逐次移动元素,优化后代码如下:

def rotLeft(a, d):
    size_a = len(a)
    # 处理d大于数组长度的场景,消除无效旋转
    d = d % size_a
    # 直接切片拼接完成左旋转,时间复杂度O(n)
    rotated_arr = a[d:] + a[:d]
    for num in rotated_arr:
        print(num, end=' ')

a = [1, 2, 3, 4, 5]
d = 4
rotLeft(a, d)

优化后的代码消除了嵌套循环和重复浅拷贝,仅需一次数组拼接操作即可得到结果,在数组长度和d较大的场景下性能提升会非常显著。

内容的提问来源于stack exchange,提问作者Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:45:03