mirror of
https://github.com/lua/lua
synced 2025-03-31 18:12:51 +03:00
Corrected documentation for 'table.sort'
The sort function must define a (strict) weak order for a correct sorting. A partial order is not enough.
This commit is contained in:
parent
b07fc10e91
commit
825ac8eca8
@ -7821,19 +7821,19 @@ from @T{list[1]} to @T{list[#list]}.
|
||||
If @id{comp} is given,
|
||||
then it must be a function that receives two list elements
|
||||
and returns true when the first element must come
|
||||
before the second in the final order
|
||||
(so that, after the sort,
|
||||
@T{i < j} implies @T{not comp(list[j],list[i])}).
|
||||
before the second in the final order,
|
||||
so that, after the sort,
|
||||
@T{i <= j} implies @T{not comp(list[j],list[i])}.
|
||||
If @id{comp} is not given,
|
||||
then the standard Lua operator @T{<} is used instead.
|
||||
|
||||
Note that the @id{comp} function must define
|
||||
a strict partial order over the elements in the list;
|
||||
that is, it must be asymmetric and transitive.
|
||||
Otherwise, no valid sort may be possible.
|
||||
The @id{comp} function must define a consistent order;
|
||||
more formally, the function must define a strict weak order.
|
||||
(A weak order is similar to a total order,
|
||||
but it can equate different elements for comparison purposes.)
|
||||
|
||||
The sort algorithm is not stable:
|
||||
elements considered equal by the given order
|
||||
Different elements considered equal by the given order
|
||||
may have their relative positions changed by the sort.
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user