Скрипты: sSortTest

 

sSortTest:

Сравнение быстродействия различных методов сортировки массива.

В скрипте функции для сортировки массива типа double различными методами:

По результатам измерения быстродействия (рис. 1), функции расположились в следующем порядке:

  • Hoare - 15 ms;
  • Shell - 318 ms;
  • SelectFst - 451 ms;
  • Select - 1318;
  • Insert - 1751;
  • Bubble - 4513;

Автор: Дмитрий

Fig. 1. Sort algorithms performance

Очевидный лидер - метод Хоара, однако этот метод является рекурсивным, следует аккуратно подходить к его использованию.

 

Пока 404 появляется. при попытке скачать или посмотреть скрипт

 

экспериментально вытянул :)
Файлы:
sSortTest.mq5  24 kb
 

а я что-то не увидел этого стандартного алгоритма:

void SortUp() 
{
  int n=ArraySize(arr);
  bool b=true;
  while (b)
  {
    b=false;
    for (int i=1; i<n; i++)
    {
      if (arr[i-1]>arr[i]) { double tmp=arr[i]; arr[i]=arr[i-1]; arr[i-1]=tmp; b=true; }
    }
  }
}
какой аналог для него в этой либе?
 
sergeev:

а я что-то не увидел этого стандартного алгоритма:

какой аналог для него в этой либе?
Так такой алгоритм трансформировался в более эффективный "пузырька", где за каждым циклом значение N уменьшается на 1.
 
sergeev:

а я что-то не увидел этого стандартного алгоритма:

какой аналог для него в этой либе?
Нет аналога. Добавил, назвал Simple. Он совсем медленный.
Файлы:
 
  1. Какое место в списке занимает штатная ArraySort?
  2. Хотелось бы иметь в MQL5 универсальную штатную функцию сортировки массивов любого типа по любому условию (как это сделано в C++ и подобных). К сожалению, из-за отсутствия указателей на MQL5 написать такую функцию затруднительно.
 

Сравнение Хоара и ArraySort

 

Файлы:
 

Здесь все вместе.

 

Файлы:
 

коллеги, предлагаю (для будующих статей) ещё дополнительно записывать видео, по моему это будет на много нагляднее, чем читать.

пример

 


ну или по крайней мере зависти рубрику интересное программерское видео, по аналогии с интересным финансовым видео... ибо складывать всё в одну кучу, по прицыпу это видео, будет как-то не рационально...