我有一个单词列表,我想对列表中每个单词的字母以及列表中的所有单词进行排序。
我知道我可以遍历单词并像这样对它们进行排序
query_list = [''.join(sorted(i)) for i in query].
但我想知道是否有快速的替代方法。
输入:['agd', 'dfc', 'acb', 'bdc']
预期输出:['abc', 'adg', 'bcd', 'cdf']
谢谢!
答案 0 :(得分:0)
sorted()的实现或多或少是最好的最新实现,大多数情况下是快速排序。因此,没有快速的替代方案可以解决此问题。 您可以用C语言重写所有内容,但可能不会加快程序的速度(仅百分之几)。
不幸的是,为了加快案件处理速度,您只有一个答案:确实确实需要对每个项目进行排序,然后对所有项目进行排序。
Idea:如果列表中的实数数据只有3个字符,则可以通过仅重写这3个字符的排序(例如在C语言中)来进行优化的特定排序。 Qsort对于短系列的项目没有很好的优化。