‘‘‘ 插入排序:假设元素左侧全部有序,找到自己的位置插入 ‘‘‘ import random import cProfile def insert_sort(nums): for i in range(1,len(nums)): for j in range(i,0,-1): if nums[j-1] > nums[j]: nums[j-1],nums[j] = nums[j],nums[j-1] return nums nums = [random.randint(0, 10000) for i in range(10000)] print(insert_sort(nums)) cProfile.run(‘insert_sort(nums)‘)
运行结果
排序:略
运行时间:5.247秒(不太真实,按道理插入排序应该跟选择排序运行时间差不多,可能实现方法有问题,暂时命名为插入排序(假))
插入排序2.0
def insert_sort(nums): for i in range(1,len(nums)): for j in range(i,0,-1): if nums[j-1] <= nums[j]: break elif nums[j-1] > nums[j]: nums[j-1],nums[j] = nums[j],nums[j-1] return nums
疑惑:只是加了个break,cprofile.run()测的运行时间就不正常了
运行时间:0.05.但是自己实际感觉还是有4秒左右,估计是我cprofile没学好,学好再来改
原文地址:https://www.cnblogs.com/shuimohei/p/10381395.html
时间: 2024-10-10 00:15:57