From 85b617a6a3a17f05b8e111220daec6eb769a81e8 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Fri, 7 Oct 2022 22:47:41 +0200 Subject: Document `Array.sort()` and `sort_custom()` using unstable sorting --- doc/classes/Array.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'doc/classes') diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml index d8c4b8fdb5..047089c917 100644 --- a/doc/classes/Array.xml +++ b/doc/classes/Array.xml @@ -557,6 +557,7 @@ Sorts the array. + [b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/wiki/Sorting_algorithm#Stability]stable[/url]. This means that values considered equal may have their order changed when using [method sort]. [b]Note:[/b] Strings are sorted in alphabetical order (as opposed to natural order). This may lead to unexpected behavior when sorting an array of strings ending with a sequence of numbers. Consider the following example: [codeblocks] [gdscript] @@ -581,7 +582,8 @@ Sorts the array using a custom method. The custom method receives two arguments (a pair of elements from the array) and must return either [code]true[/code] or [code]false[/code]. For two elements [code]a[/code] and [code]b[/code], if the given method returns [code]true[/code], element [code]b[/code] will be after element [code]a[/code] in the array. - [b]Note:[/b] You cannot randomize the return value as the heapsort algorithm expects a deterministic result. Doing so will result in unexpected behavior. + [b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/wiki/Sorting_algorithm#Stability]stable[/url]. This means that values considered equal may have their order changed when using [method sort_custom]. + [b]Note:[/b] You cannot randomize the return value as the heapsort algorithm expects a deterministic result. Randomizing the return value will result in unexpected behavior. [codeblocks] [gdscript] func sort_ascending(a, b): -- cgit v1.2.3