Алгоритмы, методы решений, сравнение их производительности - страница 10

 
Sergey Dzyublik:

каждый раз добавляя данные он переписывает все-все старые в новый string.

Есть, правда, возможность задания "резерва массива" через это.

Документация по MQL5: Строковые функции / StringInit
Документация по MQL5: Строковые функции / StringInit
  • www.mql5.com
[in]  Длина строки после инициализации. Если размер=0, то деинициализирует строку, то есть, буфер строки освобождается и адрес буфера обнуляется. Если  character=0 и размер new_len>0, то...
 
fxsaber:

Есть, правда, возможность задания "резерва массива" через это.

Спасибо. Хорошая идея.
 
Sergey Dzyublik:

Жесть, автор реально не догоняет, что каждый раз добавляя данные он переписывает все-все старые в новый string.
Ни о какой экономии кроме издевательства и речи идти не может.

Вы можете четко и развернуто объяснить что вы имеете ввиду?

Неужели так сложно?

Что то не так с этой записью? Если прибавлять символы к строке, то происходит что то ужасное (издевательское)?

 //---------------------------------
 //Записываем каждый магик вместе с порядковым номером ордера.
 //---------------------------------
 All_magics +=  "_" + (string)order_number + "_" + (string)magic;
 //---------------------------------
 
Реter Konow:

Вы можете четко и развернуто объяснить что вы имеете ввиду?

Вы изобретаете СУБД через место X. Потратьте 2-3 месяца на FoxPro/dBase с какой нибудь теорией(лекциями) по СУБД.

 
Petr Doroshenko:

Вы изобретаете СУБД через место X. Потратьте 2-3 месяца на FoxPro/dBase с какой нибудь теорией(лекциями) по СУБД.


Какие СУБД, что вы втираете человеку понимающему НОЛЬ в структурах данных.
Если нет понятия такое ArrayList (vector из С++), о чем тут речь может идти.....

 
Реter Konow:

Вы можете четко и развернуто объяснить что вы имеете ввиду?

Неужели так сложно?

Что то не так с этой записью? Если прибавлять символы к строке, то происходит что то ужасное (издевательское)?


1. Ваш код не рабочий. 
Неправильный паттерн "_index_magic". Возможное решение "|index_magic"

После добавления имеем  _1_3_2_4_3_5_4_6_
Найдите пожалуйста 3-й в списке.
Вы получите результат 2.



2. Ваш алгоритм имеет скорость O(n) при этом аж трижды идет проход про string значению All_magics
Если искать последний добавленный элемент, то это займет количество времени прямопропорционально количеству элементов - O(n).
Так же при добавлении куча затрат на копирование в новый string.

3. Ваш замер производительности абсолютно некорректный:

- ни среднего результата в серии
- ни серий с поиском последних значений индекса

 
Sergey Dzyublik:

Какие СУБД, что вы втираете человеку понимающему НОЛЬ в структурах данных.
Если нет понятия такое ArrayList (vector из С++), о чем тут речь может идти.....

Вы можете разговаривать без превосходства в словах и мыслях? Ну ошибается Пётр, ну упирается... Так то ж по незнанию. Зачем теперь вы балаган устраиваете?

Не хотите дать ему пример - всего лишь пример - так, пожалуйста, обойдитесь без едких замечаний. Пётр может в какой-нибудь другой сфере деятельности вас "сделать на раз". Давайте вас обсмеём по той теме, где он может?

Не разводите детсад пожалуйста.

 
Sergey Dzyublik:

1. Ваш код не рабочий. 
Неправильный паттерн "_index_magic". Возможное решение "|index_magic"


После добавления имеем  _1_3_2_4_3_5_4_6_
Найдите пожалуйста 3-й в списке.
Вы получите результат 2.



2. Ваш алгоритм имеет скорость O(n) при этом аж трижды идет проход про string значению All_magics
Если искать последний добавленный элемент, то это займет количество времени прямопропорционально количеству элементов - O(n).
Так же при добавлении куча затрат на копирование в новый string.

3. Ваш замер производительности абсолютно некорректный:

- ни среднего результата в серии
- ни серий с поиском последних значений индекса

1. Не понимаю о каком паттерне речь. Честно. Код является только примером записи меджиков в строку и их извлечения из нее. Он демонстрирует удобство и скорость. Возможно есть проблемы с расходом памяти. В остальном, я не знаю что еще может быть в нем плохо. Практически не понимаю. Также не понимаю этого:

После добавления имеем  _1_3_2_4_3_5_4_6_
Найдите пожалуйста 3-й в списке.
Вы получите результат 2.

Что это такое?

//---------------------------------

2. Мы трижды идем по строке для того чтобы найти начало и конец подстроки меджика и извлечь ее из общей строки.

На данный момент, практика не показала никаких из перечисленных вами трудностей.

//---------------------------------

3. Специальных и очень точных замеров я не делал, НО - мой замер скорости показал, что поиск конкретного элемента осуществляется за 10 - 100 микросекунд, в зависимости от порядкового номера сделки. То есть, от места нахождения в строке. Даже если на поиск уйдет 1000 микросекунд, - это все равно очень быстро.

Все элементы одновременно извлекать не нужно. Но даже если это сделать, это займет пару десятков миллисекунд (посчитайте сами).

 
Реter Konow:

1. Не понимаю о каком паттерне речь. Честно. Код является только примером записи меджиков в строку и их извлечения из нее. Он демонстрирует удобство и скорость. Возможно есть проблемы с расходом памяти. В остальном, я не знаю что еще может быть в нем плохо. Практически не понимаю. Также не понимаю этого:

Есть очень сильная необходимость прочитать туториал по С#. Там всё чётко разжёвано как работают строки. Ссылка простая - MSDN.
И вся эта смешная тема всего-лишь из-за неприятия человеком ооп и желания узнать что это такое.
Господи, пошли наконец уже черный список на этот форум!

п.с: а где в теме алгоритмы и их обсуждение ?

 
Alexey Oreshkin:

...

п.с: а где в теме алгоритмы и их обсуждение ?

Пока что я тут вижу лишь высмеивание человека, который имел смелость выложить сюда своё решение.

Понятно, что оно ... мягко сказать - никудышное от слова совсем. Но он выложил. Остальные пока только имеют смелость ржать и пальцем тыкать.

Причина обращения: