Библиотеки: ArrayEx
однако... при Сортировке из CArrayObj::Sort по 2м полям - вылетаю в , а InsertSort - всё-таки долго (тоже при сортировке по 2м полям)... поэтому тема автора, в принципе, поинтереснее, чем StandardLibrary...
хотя с массивами, в принципе, работать не очень удобно, с объектами структур и классов всегда более читабельно... но алгоритмы, предоставленные автором, -- конечно, заслуживают внимания
p.s. альтернативный insert_sort всё-таки ещё посмотрю... хоть на таком Компараторе и он вряд ли поможет ((
у Вас компаратор всего лишь двухранговый , 0 или 1. Таким образом он "сортирует" лишь на две кучи, без изменения положения внутри куч, если это то что надо, ок, но кажется не совсем.
StackOverflow у вас думаю потому что либо этот нюанс, либо ИЛИ либо ещё какая то петля в коде приводит к зацикливанию алгоритма.
ап: скорее всего из-за ИЛИ, вот это всё условие
if(this._TM > that._TM || (this._TM == that._TM && this._f < that._f) )
постоянно пересортирует, если поля _ТМ и _f как-то неудачно коррелируют
ап2: правильней вам надо разницу полей привести к инту, а вторичное поле сделать на порядок меньше первого.
double V1=this._TM-that._TM; double V2=this._f-that._f; while(V1<1) V1*=10; while(V2<1) V2*=10; V1*=10; return(V1+V2);// or V1-V2