Detailed Description
template functions for sorting
Definition in file gcgsorttpl.c.
Go to the source code of this file.
Functions | |
static void | GCGSORTTPL_NAME (gcgsorttpl_shellSort, GCGSORTTPL_NAMEEXT) |
static void | GCGSORTTPL_NAME (gcgsorttpl_qSort, GCGSORTTPL_NAMEEXT) |
static void | GCGSORTTPL_NAME (gcgsorttpl_checkSort, GCGSORTTPL_NAMEEXT) |
void | GCGSORTTPL_NAME (GCGsort, GCGSORTTPL_NAMEEXT) |
Macro Definition Documentation
◆ GCG_DECL_SORTINDCOMP
#define GCG_DECL_SORTINDCOMP | ( | x | ) | int x (void* userdata, void* dataptr, int ind1, int ind2) |
compares two element indices result: < 0: ind1 comes before (is better than) ind2 = 0: both indices have the same value
0: ind2 comes after (is worse than) ind2
Definition at line 57 of file gcgsorttpl.c.
◆ GCG_DECL_SORTPTRCOMP
#define GCG_DECL_SORTPTRCOMP | ( | x | ) | int x (void* userdata, void* elem1, void* elem2) |
compares two data element pointers result: < 0: elem1 comes before (is better than) elem2 = 0: both elements have the same value
0: elem2 comes after (is worse than) elem2
Definition at line 65 of file gcgsorttpl.c.
◆ GCGSORTTPL_SHELLSORTMAX
#define GCGSORTTPL_SHELLSORTMAX 25 |
Definition at line 68 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD1
#define GCGSORTTPL_HASFIELD1 | ( | x | ) |
Definition at line 89 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD1PAR
#define GCGSORTTPL_HASFIELD1PAR | ( | x | ) |
Definition at line 90 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD2
#define GCGSORTTPL_HASFIELD2 | ( | x | ) |
Definition at line 96 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD2PAR
#define GCGSORTTPL_HASFIELD2PAR | ( | x | ) |
Definition at line 97 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD3
#define GCGSORTTPL_HASFIELD3 | ( | x | ) |
Definition at line 103 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD3PAR
#define GCGSORTTPL_HASFIELD3PAR | ( | x | ) |
Definition at line 104 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD4
#define GCGSORTTPL_HASFIELD4 | ( | x | ) |
Definition at line 110 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD4PAR
#define GCGSORTTPL_HASFIELD4PAR | ( | x | ) |
Definition at line 111 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD5
#define GCGSORTTPL_HASFIELD5 | ( | x | ) |
Definition at line 117 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD5PAR
#define GCGSORTTPL_HASFIELD5PAR | ( | x | ) |
Definition at line 118 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD6
#define GCGSORTTPL_HASFIELD6 | ( | x | ) |
Definition at line 124 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASFIELD6PAR
#define GCGSORTTPL_HASFIELD6PAR | ( | x | ) |
Definition at line 125 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASPTRCOMP
#define GCGSORTTPL_HASPTRCOMP | ( | x | ) |
Definition at line 131 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASPTRCOMPPAR
#define GCGSORTTPL_HASPTRCOMPPAR | ( | x | ) |
Definition at line 132 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASINDCOMP
#define GCGSORTTPL_HASINDCOMP | ( | x | ) |
Definition at line 138 of file gcgsorttpl.c.
◆ GCGSORTTPL_HASINDCOMPPAR
#define GCGSORTTPL_HASINDCOMPPAR | ( | x | ) |
Definition at line 139 of file gcgsorttpl.c.
◆ GCGSORTTPL_EXPANDNAME
#define GCGSORTTPL_EXPANDNAME | ( | method, | |
methodname | |||
) | method ## methodname |
Definition at line 147 of file gcgsorttpl.c.
◆ GCGSORTTPL_NAME
#define GCGSORTTPL_NAME | ( | method, | |
methodname | |||
) | GCGSORTTPL_EXPANDNAME(method, methodname) |
Definition at line 149 of file gcgsorttpl.c.
◆ GCGSORTTPL_ISBETTER
#define GCGSORTTPL_ISBETTER | ( | x, | |
y | |||
) | ((x) < (y)) |
Definition at line 175 of file gcgsorttpl.c.
◆ GCGSORTTPL_ISWORSE
#define GCGSORTTPL_ISWORSE | ( | x, | |
y | |||
) | ((x) > (y)) |
Definition at line 176 of file gcgsorttpl.c.
◆ GCGSORTTPL_SWAP
#define GCGSORTTPL_SWAP | ( | T, | |
x, | |||
y | |||
) |
Definition at line 182 of file gcgsorttpl.c.
Function Documentation
◆ GCGSORTTPL_NAME() [1/4]
|
static |
shell-sort an array of data elements; use it only for arrays smaller than 25 entries ending index
Definition at line 192 of file gcgsorttpl.c.
References GCGSORTTPL_FIELD1TYPE, GCGSORTTPL_HASFIELD1, GCGSORTTPL_HASFIELD2, GCGSORTTPL_HASFIELD3, GCGSORTTPL_HASFIELD4, GCGSORTTPL_HASFIELD5, GCGSORTTPL_HASFIELD6, GCGSORTTPL_ISBETTER, and GCGSORTTPL_KEYTYPE.
◆ GCGSORTTPL_NAME() [2/4]
|
static |
quick-sort an array of pointers; pivot is the medial element TRUE, if quick-sort should start with with key[lo] < pivot <= key[hi], key[lo] <= pivot < key[hi] otherwise
Definition at line 259 of file gcgsorttpl.c.
References GCGSORTTPL_FIELD1TYPE, GCGSORTTPL_HASFIELD1, GCGSORTTPL_HASFIELD1PAR, GCGSORTTPL_HASFIELD2, GCGSORTTPL_HASFIELD2PAR, GCGSORTTPL_HASFIELD3, GCGSORTTPL_HASFIELD3PAR, GCGSORTTPL_HASFIELD4, GCGSORTTPL_HASFIELD4PAR, GCGSORTTPL_HASFIELD5, GCGSORTTPL_HASFIELD5PAR, GCGSORTTPL_HASFIELD6, GCGSORTTPL_HASFIELD6PAR, GCGSORTTPL_HASINDCOMPPAR, GCGSORTTPL_HASPTRCOMPPAR, GCGSORTTPL_ISBETTER, GCGSORTTPL_ISWORSE, GCGSORTTPL_KEYTYPE, GCGSORTTPL_NAME, GCGSORTTPL_NAMEEXT, GCGSORTTPL_SHELLSORTMAX, and GCGSORTTPL_SWAP.
◆ GCGSORTTPL_NAME() [3/4]
|
static |
verifies that an array is indeed sorted length of the array
Definition at line 440 of file gcgsorttpl.c.
References GCGSORTTPL_ISBETTER.
◆ GCGSORTTPL_NAME() [4/4]
void GCGSORTTPL_NAME | ( | GCGsort | , |
GCGSORTTPL_NAMEEXT | |||
) |
SCIPsort...(): sorts array 'key' and performs the same permutations on the additional 'field' arrays userdata that is supplied to the comparator function length of arrays
Definition at line 460 of file gcgsorttpl.c.
References GCGSORTTPL_HASFIELD1PAR, GCGSORTTPL_HASFIELD2PAR, GCGSORTTPL_HASFIELD3PAR, GCGSORTTPL_HASFIELD4PAR, GCGSORTTPL_HASFIELD5PAR, GCGSORTTPL_HASFIELD6PAR, GCGSORTTPL_HASINDCOMPPAR, GCGSORTTPL_HASPTRCOMPPAR, GCGSORTTPL_NAME, GCGSORTTPL_NAMEEXT, and GCGSORTTPL_SHELLSORTMAX.