python--计数算法

计数排序

原理
通过计数来排序
缺点:需要确定范围,不能排小数

代码实现:

def count_sort(li,max_count=100):
    count = [0 for i in range(max_count+1)]
    # 生成101个0的列表
    for val in li:
        count[val] += 1
        # 循环,把li中的值计数,计算重复次数
    print(count)
    li.clear()
    # 清除li,进行下一步
    for ind,val in enumerate(count):
        for i in range(val):
            li.append(ind)
    # 计数的结果作为循环的次数(val),然后追加到列表li中

import random
li = [random.randint(0,100) for _ in range(1000)]
print(li)
count_sort(li)
print(li)

cmd中

[70, 90, 97, 55, 43, 75, 60, 76, 33, 25, 61, 56, 2, 46, 3, 88, 35, 11, 53, 74, 42, 23, 3, 47, 78, 34, 95, 75, 75, 95, 65, 16, 72, 60, 37, 2, 68, 17, 86, 69, 69, 77, 43, 74, 31, 71, 90, 63, 7, 35, 95, 86, 16, 21, 24, 34, 71, 83, 65, 31, 81, 23, 37, 99, 78, 57, 8, 27, 68, 2, 29, 51, 92, 35, 71, 7, 67, 52, 76, 98, 31, 40, 58, 54, 1, 49, 68, 75, 34, 70, 22, 35, 91, 86, 0, 86, 65, 0, 30, 53, 25, 35, 3, 68, 46, 53, 69, 48, 35, 41, 93, 95, 100, 85, 72, 90, 67, 53, 30, 91, 96, 35, 62, 24, 88, 86, 73, 83, 93, 83, 10, 51, 6, 55, 12, 60, 76, 17, 47, 89, 24, 28, 68, 98, 72, 93, 38, 93, 43, 40, 74, 1, 16, 26, 16, 23, 46, 91, 11, 42, 78, 80, 83, 7, 92, 88, 40, 71, 73, 21, 5, 62, 1, 5, 2, 63, 59, 11, 52, 61, 61, 27, 47, 78, 56, 90, 98, 90, 90, 34, 64, 52, 54, 10, 100, 3, 57, 92, 27, 61, 16, 90, 1, 99, 92, 35, 91, 51, 34, 48, 11, 94, 45, 35, 0, 51, 99, 13, 43, 47, 45, 64, 17, 70, 83, 57, 96, 99, 24, 67, 68, 75, 44, 10, 58, 9, 28, 69, 68, 84, 11, 62, 34, 99, 71, 18, 58, 63, 89, 70, 38, 61, 48, 53, 77, 47, 57, 62, 53, 3, 9, 39, 43, 67, 66, 67, 61, 18, 82, 60, 5, 49, 95, 63, 14, 43, 5, 65, 75, 93, 72, 82, 80, 70, 72, 78, 98, 79, 28, 7, 93, 88, 66, 89, 99, 100, 77, 35, 47, 55, 46, 88, 49, 77, 65, 60, 53, 82, 3, 39, 72, 85, 66, 1, 10, 67, 42, 57, 18, 39, 36, 18, 2, 1, 13, 14, 1, 87, 32, 75, 97, 82, 74, 77, 23, 1, 37, 65, 95, 44, 49, 68, 38, 40, 94, 40, 83, 93, 76, 84, 0, 22, 93, 20, 29, 36, 36, 68, 65, 76, 16, 30, 13, 63, 55, 43, 59, 57, 59, 49, 35, 72, 87, 20, 47, 100, 79, 87, 53, 87, 48, 53, 94, 20, 51, 87, 24, 95, 50, 82, 62, 73, 46, 86, 66, 2, 76, 77, 58, 50, 98, 46, 43, 40, 97, 53, 100, 13, 31, 30, 11, 73, 58, 0, 2, 27, 35, 41, 86, 72, 46, 54, 17, 100, 87, 0, 45, 38, 53, 73, 98, 40, 76, 5, 12, 36, 47, 28, 97, 92, 32, 76, 0, 4, 26, 45, 33, 7, 49, 15, 55, 70, 3, 86, 78, 77, 58, 60, 66, 44, 62, 47, 55, 50, 81, 80, 88, 100, 64, 19, 66, 33, 47, 20, 80, 83, 41, 94, 63, 96, 45, 9, 20, 88, 68, 10, 48, 86, 88, 26, 48, 70, 86, 71, 99, 36, 16, 43, 55, 39, 95, 1, 31, 46, 81, 70, 42, 89, 22, 20, 71, 34, 15, 86, 14, 94, 80, 84, 75, 15, 25, 31, 55, 46, 22, 78, 3, 62, 35, 29, 41, 59, 88, 10, 55, 64, 23, 0, 37, 4, 43, 72, 100, 90, 82, 2, 85, 56, 76, 74, 77, 36, 43, 44, 34, 52, 41, 64, 64, 65, 17, 50, 45, 90, 5, 69, 50, 19, 62, 30, 93, 80, 63, 7, 57, 49, 20, 31, 61, 13, 45, 26, 63, 32, 26, 59, 36, 77, 43, 79, 32, 62, 31, 92, 34, 93, 75, 79, 64, 14, 97, 84, 90, 83, 70, 18, 53, 50, 46, 58, 65, 84, 84, 97, 99, 77, 11, 93, 82, 81, 71, 72, 77, 81, 50, 28, 71, 11, 82, 67, 96, 44, 47, 16, 38, 47, 32, 13, 95, 80, 57, 55, 75, 83, 98, 39, 91, 4, 78, 94, 86, 59, 1, 97, 80, 12, 60, 7, 38, 56, 81, 33, 57, 78, 20, 2, 43, 0, 32, 41, 77, 7, 20, 16, 93, 21, 43, 95, 30, 78, 82, 27, 33, 33, 68, 90, 0, 76, 24, 31, 100, 86, 39, 95, 23, 45, 40, 45, 29, 66, 60, 21, 35, 74, 83, 67, 75, 69, 89, 28, 73, 96, 56, 31, 25, 26, 70, 44, 70, 44, 10, 60, 0, 82, 50, 33, 22, 29, 12, 0, 50, 39, 73, 36, 6, 92, 58, 82, 69, 70, 3, 86, 38, 78, 52, 33, 2, 19, 96, 42, 77, 54, 17, 72, 54, 19, 78, 51, 26, 97, 51, 29, 93, 23, 69, 53, 13, 71, 10, 82, 9, 83, 62, 1, 16, 53, 72, 30, 98, 55, 12, 79, 32, 88, 74, 1, 81, 4, 32, 35, 65, 30, 67, 18, 5, 20, 91, 2, 2, 55, 64, 31, 41, 58, 99, 98, 93, 51, 13, 26, 66, 77, 76, 0, 35, 34, 33, 19, 7, 89, 91, 5, 94, 71, 3, 14, 20, 27, 85, 97, 80, 50, 49, 8, 43, 91, 28, 7, 5, 39, 57, 83, 73, 52, 48, 8, 83, 84, 52, 65, 62, 46, 76, 87, 36, 3, 68, 74, 20, 96, 80, 49, 75, 55, 17, 75, 88, 84, 60, 33, 74, 0, 46, 71, 16, 17, 59, 63, 2, 12, 37, 74, 41, 34, 5, 86, 79, 18, 10, 77, 0, 17, 47, 88, 93, 64, 87, 48, 4, 41, 26, 69, 88, 31, 64, 4, 92, 86, 10, 92, 67, 12, 72, 99, 3, 10, 29, 92, 24, 93, 90, 97, 64, 12, 0, 79, 83, 46, 54, 49, 36, 59, 71, 11, 63, 53, 58, 79, 52, 80, 51, 52, 54, 40, 93, 50, 7, 13, 13, 24, 59, 54, 23, 56, 40, 26, 48, 95, 13, 31, 45, 96, 54, 73, 56, 46, 1, 96, 27, 4, 71, 75, 26, 61, 52, 69, 17, 35, 53, 33, 29, 21, 36, 48, 10, 75, 52, 3, 75, 42, 63, 37, 34, 30, 49, 15, 73, 71, 11, 93]
[16, 13, 13, 13, 7, 10, 2, 11, 3, 4, 12, 10, 8, 11, 5, 4, 11, 10, 7, 5, 12, 5, 5, 8, 8, 4, 11, 7, 7, 8, 9, 13, 8, 11, 12, 17, 11, 6, 7, 8, 10, 9, 6, 15, 7, 10, 14, 13, 10, 11, 11, 9, 11, 16, 9, 13, 7, 10, 10, 9, 10, 8, 11, 11, 11, 11, 8, 10, 12, 10, 12, 15, 13, 10, 10, 16, 12, 15, 12, 8, 11, 7, 12, 14, 8, 4, 16, 8, 13, 6, 12, 8, 10, 18, 7, 12, 9, 10, 9, 10, 9]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值