MCPcopy Create free account
hub / github.com/crownengine/crown / quickSortR

Function quickSortR

3rdparty/bx/src/sort.cpp:10–46  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8namespace bx
9{
10 static void quickSortR(void* _pivot, void* _data, uint32_t _num, uint32_t _stride, const ComparisonFn _fn)
11 {
12 if (2 > _num)
13 {
14 return;
15 }
16
17 memCopy(_pivot, _data, _stride);
18
19 uint8_t* data = (uint8_t*)_data;
20
21 uint32_t ll = 0;
22 uint32_t gg = 1;
23
24 for (uint32_t ii = 1; ii < _num;)
25 {
26 int32_t result = _fn(&data[ii*_stride], _pivot);
27 if (0 > result)
28 {
29 swap(&data[ll*_stride], &data[ii*_stride], _stride);
30 ++ll;
31 }
32 else if (0 == result)
33 {
34 swap(&data[gg*_stride], &data[ii*_stride], _stride);
35 ++gg;
36 ++ii;
37 }
38 else
39 {
40 ++ii;
41 }
42 }
43
44 quickSortR(_pivot, &data[0 ], ll, _stride, _fn);
45 quickSortR(_pivot, &data[gg*_stride], _num-gg, _stride, _fn);
46 }
47
48 void quickSort(void* _data, uint32_t _num, uint32_t _stride, const ComparisonFn _fn)
49 {

Callers 1

quickSortFunction · 0.85

Calls 2

memCopyFunction · 0.85
swapFunction · 0.70

Tested by

no test coverage detected