【计数排序~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)   # 系统时间复杂度

上一章链接:二叉搜索树~查询、插入、删除

江湖一言:

没有人会帮组一个毫无价值的人,所以你必须要好好经营自己,就算跌入谷底,也要有与人交换的筹码。

持续更新中…

猜你喜欢

转载自blog.csdn.net/m0_66318554/article/details/124755654