Как правило, если человек устраивается работать программистом без опыта, ему дают тестовое задание написать алгоритм сортировки массива на любом языке программирования, который известен соискателю. Со мной так было 3 раза на моих трех первых собеседованиях.
Привожу код функции сортировки массива на MQL4 с пояснениями.
void sortMass() // объявление функции
{
int mass[]; // Объявляем массив
ArrayResize(mass,10); // устанавливаем размер массива, 10 хватит
for(int i=0; i<10;i++) // заполняем массив рандомными значениями
{
mass[i]=MathRand();
}
for(int i=0; i<10;i++) // "большой цикл"
{
for(int j=0; j<10;j++) // "маленький цикл"
{
int c; // переменная для хранения "старого" значения
if(mass[i]>mass[j]) // сравниваем элемент "большого" массива с каждым элементом этого же массива. Если текущий элемент больше следующего значения, то (если поставить в сравнение <, массив будет отсортирован от меньшего к большему)
{
c=mass[i];//запоминаем это значение
mass[i] = mass[j]; //Присваиваем ему значение следующего значения
mass[j] = c; // а само следующее значение меняем местами с предыдущим значением. Получается, меняем местами элементы массива в сторону уменьшения
}
}
}
string massiv; // объявляем строку
for(int i=0; i<10;i++) // делаем цикл для составления строки
{
massiv+=mass[i]+" \n ";//формируем строку с уже отсортироваными значениями массива
}
Comment(massiv);// распечатываем результат на графике
}
В глобальных переменных объявляем datetime mas;
Вызываем функцию в OnInit() один раз за один бар:
if(mas!=Time[0])
{
sortMass();
mas=Time[0];
}
Получаем отсортированный массив: