我是靠谱客的博主 眼睛大鸵鸟,最近开发中收集的这篇文章主要介绍python计数排序1. 思路2. 代码13. 代码2,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这里写目录标题

  • 1. 思路
  • 2. 代码1
  • 3. 代码2

1. 思路

1. 创建一个长度为列表长度+1 的新列表
2. 找出列表中元素出现的个数,并存储到新列表中
    比如列表为:1  3  1  2 6  5  6  1
         数    有几个
         0    0
         1    3
         2    1
         3    1
         4    0
         5    1
         6    2
3. 清除旧列表的所有元素,按照元素出现的个数,按照顺序依次添加到旧列表中

2. 代码1

def count_sort(li, max_num):
    count = [0 for i in range(max_num + 1)]
    for val in li:
        count[val] += 1  # 每个数字的个数
        print('count:', count)
    li.clear()
    for index, val in enumerate(count):# index代表数,val代表数量
        for i in range(val): # 遍历数量
            li.append(index) # 将数添加到列表中


import random

li = [1, 1, 2, 3, 4, 3, 4,  1, 3]
random.shuffle(li)
print(li)
count_sort(li, max(li))
print(li)

观察下面结果:

[4, 3, 3, 1, 1, 2, 4, 1, 3]
count: [0, 0, 0, 0, 1] 将第一次出现的数字4 加到新列表中,现在4的数量为1
count: [0, 0, 0, 1, 1] 将第一次出现的数字3 加到新列表中,现在3的数量为1
count: [0, 0, 0, 2, 1] 将第二次出现的数字3 加到新列表中,现在3的数量为2
count: [0, 1, 0, 2, 1] 将第一次出现的数字1 加到新列表中,现在1的数量为1
count: [0, 2, 0, 2, 1] 将第二次出现的数字1 加到新列表中,现在1的数量为2
count: [0, 2, 1, 2, 1] 将第一次出现的数字2 加到新列表中,现在2的数量为1
count: [0, 2, 1, 2, 2] 将第二次出现的数字4 加到新列表中,现在4的数量为2
count: [0, 3, 1, 2, 2] 将第三次出现的数字1 加到新列表中,现在1的数量为3
count: [0, 3, 1, 3, 2] 将第三次出现的数字3 加到新列表中,现在3的数量为3
[1, 1, 1, 2, 3, 3, 3, 4, 4]

enumerate解释:

enumerate:获取列表的下标和元素
li = [1, 1, 1, 2, 3, 3, 3, 4, 4]
for index, value in enumerate(li):
    print('下标:{}  元素:{}'.format(index, value))

在这里插入图片描述

3. 代码2

def count_sort(li):
    n = len(li)  # li列表长度
    num = max(li)  # li列表最大的元素
    # print(n,num)
    count = [0] * (num + 1)  # 创建一个新列表,长度为最大元素+1
    for i in range(0, n):
        count[li[i]] += 1  # 计算每个数字的个数
        print('count:', count)
    li = [] # 清空列表
    for i in range(0, num + 1): # 遍历列表长度,代表数
        for j in range(0, count[i]):# 遍历count列表,j代表这个数的数量
            li.append(i) #将这个数添加到列表中
    return li


li = [1, 1, 2, 3, 4, 3, 4, 1, 3]
print(li)
print(count_sort(li))

最后

以上就是眼睛大鸵鸟为你收集整理的python计数排序1. 思路2. 代码13. 代码2的全部内容,希望文章能够帮你解决python计数排序1. 思路2. 代码13. 代码2所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(88)

评论列表共有 0 条评论

立即
投稿
返回
顶部