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

获取冒泡排序执行时间时遇TypeError:需整数却得NoneType

解决冒泡排序计时的TypeError问题

错误根源

  1. bubbleSort无返回值:该函数仅修改输入数组,未定义return语句,调用后默认返回None。
  2. 参数传递错误:get_time(bubbleSort(list))中,list是Python内置类型而非具体数组实例,且bubbleSort(list)返回None,传给time.sleep()时触发类型错误(sleep需要整数/浮点数,而非None)。
  3. get_time逻辑错位:原函数是计时time.sleep(),而非目标排序函数的执行时间。

修复后的完整代码

import time

def bubbleSort(array):
    for i in range(len(array)):
        for j in range(0, len(array) - i - 1):
            if array[j] > array[j + 1]:
                # 简化元素交换逻辑
                array[j], array[j + 1] = array[j + 1], array[j]

def get_time(func, *args):
    start = time.time()
    func(*args)  # 执行待计时的目标函数
    end = time.time()
    return end - start

# 替换为你需要测试的具体数组
test_array = [3, 1, 4, 1, 5, 9, 2, 6]
execution_time = get_time(bubbleSort, test_array)
print(f"冒泡排序执行时间:{execution_time:.6f} 秒")

核心修复说明

  • 重构get_time为通用计时函数:接受待执行函数及其参数,执行后返回耗时。
  • 传入具体测试数组:避免直接使用list内置类型,确保bubbleSort能正常处理。
  • 可选优化:用Python元组解包简化交换操作,替代临时变量写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:30:48