Loading

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)

运行结果如下:

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

posted @ 2021-04-26 23:43  紫曜花  阅读(448)  评论(0编辑  收藏  举报