# sort_func.hpp File Reference

Functions related to sorting operations. More...

`#include "mem_func.hpp"`

Go to the source code of this file.

## Functions
template<typename T>
static FORCEINLINE void | QSortT (T *base, uint num, int(CDECL *comparator)(const T *, const T *), bool desc=false)
| Type safe qsort().
template<typename T>
static void | GSortT (T *base, uint num, int(CDECL *comparator)(const T *, const T *), bool desc=false)
| Type safe Gnome Sort.

## Detailed Description

Functions related to sorting operations.

Definition in file sort_func.hpp.

## Function Documentation

template<typename T>

static void GSortT | ( | T * | base,
|  | uint | num,
|  | int(CDECL *comparator)(const T *, const T *) | ,
|  | bool | desc = `false` |
| ) |  |  | `[inline, static]`

Type safe Gnome Sort.

This is a slightly modifyied Gnome search. The basic Gnome search trys to sort already sorted list parts. The modification skips these.

Note:
  Use this sort for presorted / regular sorted data.

Parameters:

  | base | Pointer to the first element of the array to be sorted.
  | num | Number of elements in the array pointed by base.
  | comparator | Function that compares two elements.
  | desc | Sort descending.

Definition at line 52 of file sort_func.hpp.

References Swap().

Referenced by GUIList< const Industry * >::Sort().

template<typename T>

static FORCEINLINE void QSortT | ( | T * | base,
|  | uint | num,
|  | int(CDECL *comparator)(const T *, const T *) | ,
|  | bool | desc = `false` |
| ) |  |  | `[inline, static]`

Type safe qsort().

Note:
  Use this sort for irregular sorted data.

Parameters:

  | base | Pointer to the first element of the array to be sorted.
  | num | Number of elements in the array pointed by base.
  | comparator | Function that compares two elements.
  | desc | Sort descending.

Definition at line 28 of file sort_func.hpp.

References MemReverseT().

Referenced by EngList_Sort(), EngList_SortPartial(), FiosGetFileList(), and GUIList< const Industry * >::Sort().