Скачать MetaTrader 5

Скрипты: sSortTest

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не знаешь, как пользоваться виджетом? Прочитай об этом статью!
Automated-Trading
Админ
99099
Automated-Trading 2012.06.04 10:38 

sSortTest:

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

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

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

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

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

Fig. 1. Sort algorithms performance

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

Alexander Puzikov
32798
Alexander Puzikov 2012.06.04 18:31  

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

o_o
Модератор
23690
o_o 2012.06.04 18:55  

экспериментально вытянул :)
Файлы:
sSortTest.mq5 24 kb
o_o
Модератор
23690
o_o 2012.06.04 19:04  

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

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; }
    }
  }
}
какой аналог для него в этой либе?
Andrey F. Zelinsky
31295
Andrey F. Zelinsky 2012.06.04 19:36  
sergeev:

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

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

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

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

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

 

 

Файлы:
Dmitry Fedoseev
42885
Dmitry Fedoseev 2012.06.04 20:20  

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

 

Файлы:
Serhiy Dotsenko
919
Serhiy Dotsenko 2015.02.20 20:12  

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

пример

 


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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий