python进阶江湖
计数排序:
# -*- coding = utf-8 -*-
# @Time : 2022/5/13 11:43
# @Author : lxw_pro
# @File : py-11.py
# @Software : PyCharm
# 计数排序:
'''
对列表进行排序,已知列表中的数范围都在0到100之间。
设计时间复杂度为O(n)的算法。
'''
import time
start = time.time()
import random, copy
def c_sort(li, max_c=100):
c = [0 for _ in range(max_c+1)]
for val in li:
c[val] += 1
li.clear()
for i, val in enumerate(c):
for j in range(val):
li.append(i)
li = [random.randint(0, 100) for _ in range(10000)]
# print(li)
# c_sort(li)
# print(li)
li1 = copy.deepcopy(li)
c_sort(li1)
end1 = time.time()
print(end1-start) # 自测时间复杂度
def sys_sort(li):
li.sort()
li2 = copy.deepcopy(li)
sys_sort(li2)
end2 = time.time()
print(end2-start) # 系统时间复杂度
上一章链接:二叉搜索树~查询、插入、删除
江湖一言:
没有人会帮组一个毫无价值的人,所以你必须要好好经营自己,就算跌入谷底,也要有与人交换的筹码。