使用python函数进行基数排序

Posted

技术标签:

【中文标题】使用python函数进行基数排序【英文标题】:radix sort using python function 【发布时间】:2014-10-17 05:59:27 【问题描述】:

我正在使用此代码在 python 中使用基数排序对列表进行排序

def radix(self, a):
        len_a = len(a)
        modulus = 10
        div = 1
        while True:
            '''DECLARATION OF BUCKETS'''
            new_list = [[], [], [], [], [], [], [], [], [], []]
            for value in a:
                least_digit = value % modulus
                least_digit /= div
                new_list[least_digit].append(value)
            modulus = modulus * 10
            div = div * 10

            if len(new_list[0]) == len_a:
                '''RETURN THE LIST WHEN SORTED'''
                return new_list[0]

            a = []

            rd_list_append = a.append

            for x in new_list:
                for y in x:
                    rd_list_append(y)

我无法理解这些行的作用

            a = []

            rd_list_append = a.append

            for x in new_list:
                for y in x:
                    rd_list_append(y)

我知道 for 循环是如何工作的,但是什么是 rd_list_append(y) 请帮我。我是 python 新手。

【问题讨论】:

你从哪里得到这个代码? 【参考方案1】:

好的,这就是为什么他们告诉你不要从互联网上复制代码来完成作业。

这部分代码基本上是把原来的列表修改为部分排序(一轮基数排序)。您可以将“rd_list_append”视为指向列表“a”的附加函数的指针。 您也可以直接在循环中执行 a.append(y) 。

【讨论】:

以上是关于使用python函数进行基数排序的主要内容,如果未能解决你的问题,请参考以下文章

使用python实现希尔计数基数排序

python中都有哪些简单的算法?

计数排序,桶排序,基数排序的python实现

基数排序浮点数

python中的基数排序程序

python分类算法都有哪些