table.sort使用什么算法?

时间:2013-08-04 14:08:54

标签: sorting lua lua-table

我很好奇Lua的默认table.sort使用的算法,只是因为它比我遇到的其他一些排序算法慢。我很好奇Lua的table.sort是用C语言编写的,还是在Lua的库中。

2 个答案:

答案 0 :(得分:6)

  

table.sort使用什么算法?

comment in tablib.c(向上滚动)状态

/*
** {======================================================
** Quicksort
** (based on `Algorithms in MODULA-3', Robert Sedgewick;
**  Addison-Wesley, 1993.)
** =======================================================
*/

您可以在我提供的链接上阅读源代码。

  

我也很好奇Lua的table.sort是用C语言编写的,还是在Lua的库中。

目前,所有直接使用Lua(iotablemath,...)的库都是用C语言编写的。

答案 1 :(得分:3)

在内部,table.sort使用快速排序,并且用C语言编写。请注意,快速排序不稳定。对我来说有点令人惊讶的是,Lua没有直接使用C qsort()

至于性能,很难分辨,因为有各种因素,例如,您正在与哪种语言和算法进行比较,以及正在测试哪种数据。

相关问题