Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 1379
- Рейтинг:
- Опубликован:
- Обновлен:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Алгоритм быстрой сортировки для массивов и динамического массива CArrayObj из стандартной библиотеки,
а также для сортировки векторов.
В отличие от ArraySort, может сортировать строки, а также использовать различные условия сортировки.
template< typename T > void QuickSort( T& array[] );
T - Встроенный тип или любой тип, для которого определён operator<().
array - Статический или динамический массив.
template< typename T, typename FuncType > void QuickSort( T& array[], FuncType func );
T - Любой тип.
array - Статический или динамический массив.
func - Функция сравнения элементов массива вида: bool func( const T& left, const T& right );
Возвращает true если левый элемент меньше правого.
template< typename T, typename FuncType > void QuickSort( T& array[], FuncType func, int first, int last );
T - Любой тип.
array - Статический или динамический массив.
func - Функция сравнения элементов массива вида: bool func( const T& left, const T& right );
Возвращает true если левый элемент меньше правого.
first - Индекс первого элемента на участке сортировки.
last - Индекс последнего элемента на участке сортировки.
void QuickSort( CArrayObj& array ); array - Массив указателей на экземпляры класса CObject и его наследников.
Для элементов массива должна быть определена функция Compare().
template< typename FuncType > void QuickSort( CArrayObj& array, FuncType func );
array - Массив указателей на экземпляры класса CObject и его наследников.
func - Функция сравнения элементов массива вида: bool func( const CObject* left, const CObject* right );
Возвращает true если левый элемент меньше правого.
template< typename FuncType > void QuickSort( CArrayObj& array, FuncType func, int first, int last );
array - Массив указателей на экземпляры класса CObject и его наследников.
func - Функция сравнения элементов массива вида: bool func( const CObject* left, const CObject* right );
Возвращает true если левый элемент меньше правого.
first - Индекс первого элемента на участке сортировки.
last - Индекс последнего элемента на участке сортировки.
void QuickSort( vector< double >& v ); void QuickSort( vector< float >& v ); void QuickSort( vector& v ); void QuickSort( vectorf& v );
v - vector< double > или vector< float >.
Пример демонстрирующий сортировку структур:
#include <QuickSort.mqh>
struct MyStruct
{
double A;
double B;
double C;
};
typedef bool (*FuncLess)( const MyStruct&, const MyStruct& );
bool Less( const MyStruct& struct1, const MyStruct& struct2 )
{
if( struct1.A != struct2.A ){
return struct1.A < struct2.A;
}
if( struct1.B != struct2.B ){
return struct1.B < struct2.B;
}
return struct1.C < struct2.C;
}
void OnStart()
{
MyStruct structArray[];
ArrayResize( structArray, 25 );
for( int i = 0; i < 25; i++ ){
structArray[i].A = rand();
structArray[i].B = rand();
structArray[i].C = rand();
}
QuickSort< MyStruct, FuncLess >( structArray, Less );
for( int i = 0; i < 25; i++ )
{
PrintFormat( "structArray[%i] = %f %f %f", i, structArray[i].A, structArray[i].B, structArray[i].C );
}
}
Force Arrow Chart Alert
Сигнальный индикатор iForce (Force Index, FRC). При появлении сигнала индикатор сигнализирует различными способами
Trailing Highest and Lowest position Net Price
Советник-утилита: ищет по текущему символу максимальную и минимальную позицию (заданного типа) и проводит трейлинг выбранных позиций по неттинговой цене
Renko Level Subwindow
Индикатор отображает ренко-бары в подокне
N last bars OBJ_CHART 2
Версия 2. По умолчанию символ текущий, а также ширина и высота графика. При желании можно задать ширину, высоту и символ