Radix对列表进行排序

时间:2018-03-18 00:39:32

标签: python sorting radix-sort

我有一张包含以下内容的表:

table = [['BA','A'],['CC','AA]]

我正在使用基数排序来对表中每个列表中的字符串元素进行排序。

def radix_sort(L, i):

    if len(L) <= 1:
        return L

    done_bucket = []
    buckets = [[] for x in range(27)]

    for s in L:
        if i >= len(s):
            done_bucket.append(s)
        else:
            buckets[ord(s[i]) - ord('A')].append(s)

    buckets = [radix_sort(b, i + 1) for b in buckets]

    return done_bucket + [b for blist in buckets for b in blist]

print(radix_sort(table,0))

我遇到的问题是基数代码的for循环段,它不访问字符串元素,而是访问整个列表。

我期待输出如此:

[['A','BA'],['AA','CC']]

如何修改基数代码以满足二维列表?

0 个答案:

没有答案