diff --git a/src/core/sort_func.hpp b/src/core/sort_func.hpp index d557d24bd7..b1904f32eb 100644 --- a/src/core/sort_func.hpp +++ b/src/core/sort_func.hpp @@ -34,56 +34,4 @@ static inline void QSortT(T *base, size_t num, int (CDECL *comparator)(const T*, if (desc) MemReverseT(base, num); } -/** - * Type safe Gnome Sort. - * - * This is a slightly modified Gnome search. The basic - * Gnome search tries to sort already sorted list parts. - * The modification skips these. - * - * @note Use this sort for presorted / regular sorted data. - * - * @param base Pointer to the first element of the array to be sorted. - * @param num Number of elements in the array pointed by base. - * @param comparator Function that compares two elements. - * @param desc Sort descending. - */ -template -static inline void GSortT(T *base, size_t num, int (CDECL *comparator)(const T*, const T*), bool desc = false) -{ - if (num < 2) return; - - assert(base != nullptr); - assert(comparator != nullptr); - - T *a = base; - T *b = base + 1; - uint offset = 0; - - while (num > 1) { - const int diff = comparator(a, b); - if ((!desc && diff <= 0) || (desc && diff >= 0)) { - if (offset != 0) { - /* Jump back to the last direction switch point */ - a += offset; - b += offset; - offset = 0; - continue; - } - - a++; - b++; - num--; - } else { - Swap(*a, *b); - - if (a == base) continue; - - a--; - b--; - offset++; - } - } -} - #endif /* SORT_FUNC_HPP */