首页 > 解决方案 > 快速排序列表中的单词| Python

问题描述

我有一个单词列表,我想对列表中每个单词的字母以及列表中的所有单词进行排序。我知道我可以遍历单词并像这样对它们进行排序 query_list = [''.join(sorted(i)) for i in query]. 但我想知道是否有一种快速的替代方法可以做到这一点。

输入:['agd', 'dfc', 'acb', 'bdc']

预期输出:['abc', 'adg', 'bcd', 'cdf']

提前致谢!

标签: python-3.xlistperformancesorting

解决方案


或多或少,sorted() 的实现是最好的最先进的实现,大部分时间是快速排序。所以这个问题没有快速的替代方案。您可以用 C 重写所有内容,但您可能不会过多地加快程序速度(只有百分之几)。

不幸的是,为了加快您的案件速度,您只有一个答案:确实需要对每个项目进行排序,然后对所有项目进行排序。

想法:如果列表中的真实数据只有 3 个字符,您可以通过仅重写这 3 个字符的排序来优化特定排序,例如在 C 中。Qsort 不能很好地优化短系列项目。


推荐阅读