mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 23:04:08 +10:00
Made quicksort on mostly-sorted arrays more efficient
This commit is contained in:
@@ -1471,8 +1471,13 @@ static void recursiveLiteralQuicksortUtil(Toy_Interpreter* interpreter, Toy_Lite
|
|||||||
swapLiteralsUtil(&ptr[runner], &ptr[literalCount - 1]);
|
swapLiteralsUtil(&ptr[runner], &ptr[literalCount - 1]);
|
||||||
|
|
||||||
//recurse on each end
|
//recurse on each end
|
||||||
|
if (runner > 0) {
|
||||||
recursiveLiteralQuicksortUtil(interpreter, &ptr[0], runner, fnCompareLiteral);
|
recursiveLiteralQuicksortUtil(interpreter, &ptr[0], runner, fnCompareLiteral);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runner < literalCount) {
|
||||||
recursiveLiteralQuicksortUtil(interpreter, &ptr[runner + 1], literalCount - runner - 1, fnCompareLiteral);
|
recursiveLiteralQuicksortUtil(interpreter, &ptr[runner + 1], literalCount - runner - 1, fnCompareLiteral);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nativeSort(Toy_Interpreter* interpreter, Toy_LiteralArray* arguments) {
|
static int nativeSort(Toy_Interpreter* interpreter, Toy_LiteralArray* arguments) {
|
||||||
|
|||||||
Reference in New Issue
Block a user