• sorted和list.sort耗时分析:由输入获得 10 个整数并从小到大排序


    题目要求:

    由输入获得 10 个整数,然后对它们排序后,再从小到大打印出来。

    拆解:

    1. 输入数据
    2. 排序
    3. 输出数据
    print('请输入10个整数:')
    data = []
    for i in range(10):
        a = int(input(f'第{i+1}个:'))
        data.append(a)
    
    print('输入的数据是:',data)
    data.sort()
    print('排序后为:',data)
    

    自己写排序算法,并和内置函数sorted()list.sort()比较算法耗时

    import random
    import time
    
    # 自己写排序算法
    def my_sort(data):
        for i in range(len(data)-1):
            for j in range(1, len(data)):
                if data[i] > data[j]:
                    data[i], data[j] = data[j], data[i]
        return data
    
    # 对比my_sort()、sorted()、list.sort()耗时
    data = [random.randint(1,10000) for i in range(10000)]
    
    # sorted()耗时
    start = time.time()
    sorted(data)
    time.sleep(1)
    end = time.time()
    print('sorted()耗时:',end-start)
    
    data = [random.randint(1,10000) for i in range(10000)]
    # my_sort()耗时
    start = time.time()
    my_sort(data)
    time.sleep(1)
    end = time.time()
    print('my_sort()耗时:',end-start)
    
    data = [random.randint(1,10000) for i in range(10000)]
    # list.sort()耗时
    start = time.time()
    data.sort()
    time.sleep(1)
    end = time.time()
    print('list.sort()耗时:',end-start)
    

    运行结果如下:

    感觉自己写的和内置的函数耗时隔了上百倍,所以肯定有需要优化的地方。

  • 相关阅读:
    源码篇:Python 实战案例----银行系统
    源码分享篇:使用Python进行QQ批量登录
    python制作电脑定时关机办公神器,另含其它两种方式,无需编程!
    Newtonsoft.Json 去掉
    C#Listview添加数据,选中最后一行,滚屏
    C# 6.0语法糖
    XmlHelper
    AppSettings操作类
    JsonHelper
    JS加载获取父窗体传递的参数
  • 原文地址:https://www.cnblogs.com/augustine0654/p/14707123.html
Copyright © 2020-2023  润新知