码迷,mamicode.com
首页 > 编程语言 > 详细

<每日一题>题目27:插入排序(假)

时间:2019-02-15 01:15:50      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:方法   有序   .com   range   估计   for   假设   import   选择排序   

‘‘‘
    插入排序:假设元素左侧全部有序,找到自己的位置插入
‘‘‘
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没学好,学好再来改

技术图片

<每日一题>题目27:插入排序(假)

标签:方法   有序   .com   range   估计   for   假设   import   选择排序   

原文地址:https://www.cnblogs.com/shuimohei/p/10381395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!