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

 
Alexandr Andreev:

ну в общем в двух словах стринг одного символа это char с неким кодом от 0 до 255 и весит 1 байт... и выделено под него именно столько памяти чтобы как раз было 256 значений, 257 туда не поместиться оно перемститься обратно на первое.

Да вот в любой страке каждый символ равен число от 0 до 255... получаемться мы берем число инт 10000000 - весит оно 4 байта , перводим его в строку "10000000" потом на каждый символ выделяем памяти как на одельный чарт от 0 до 255... итого 8 байт Тут близко нигде нету экономии памяти  

Я вас понял.

Надо точно посчитать размер потребляемой памяти при этом решении.

 
Реter Konow:

Можно вторую строку начать писать. Потом третью и т.д... :)

Теперь понятно, почему так долго создается ваш "конструктор".
 
Vasiliy Sokolov:


p.s. Ах, да, у Вас еще одна ошибка. Если MathRand на третьем вызове вернет например число 1000 и запишет _3_1000_, какой меджик будет найден у сделки с порядковым номером 1000?  

Дело в том, что MathRand нужен только для имитации номеров меджиков.

Номера меджиков задаются пользователем, и он может обойти значение меньше 100 000 (допустим).

Однако,  внутри приведенного примера может быть ошибка. Вы правы.

Спасибо за наблюдательность. В полноценном решении нужно это учитывать.

 
Реter Konow:

Я вас понял.

Надо точно посчитать размер потребляемой памяти при этом решении.


При этом также очень много растрат ресурса будет уходить на внутренние ссылки т.к. доступ к каждому символу стринга это тоже самое что и доступ к char[x] массиву. Ссылка в данном случае это доступ к определенному элементу массива. И вы их там переберете просто огромными кучами. Реализация с интом было бы в разы проще понятнее быбстрее...

Ограничение же длины строки как правило зависит от ограничение максимального размера в массиве char[x]  - имеет свой максимальный предел, как и другие

 

Человек искренне не понимает размер собственной глупости.
Эффект Даннинга — Крюгера в действии.

 

да все нормально просто человеку нужен не типизированный язык и нет проблем))

хотя разница по скорости все равно будет
 
Vasiliy Sokolov:
p.s. Ах, да, у Вас еще одна ошибка. Если MathRand на третьем вызове вернет например число 1000 и запишет _3_1000_, какой меджик будет найден у сделки с порядковым номером 1000?  
Он еще немного  "подумает" и эту проблему решит: будет ставить перед сделкой подчеркивание, а перед магиком другой символ :)
 
Alexandr Andreev:

При этом также очень много растрат ресурса будет уходить на внутренние ссылки т.к. доступ к каждому символу стринга это тоже самое что и доступ к char[x] массиву. Ссылка в данном случае это доступ к определенному элементу массива. И вы их там переберете просто огромными кучами. Реализация с интом было бы в разы проще понятнее быбстрее...

Ограничение же длины строки как правило зависит от ограничение максимального размера в массиве char[x]  - имеет свой максимальный предел, как и другие

Мы не можем реализовать с интом, потому что заранее не знаем количество будущих сделок. Нам нужно либо гадать, либо на каждой сделке менять размер массива и переписывать данные туда-сюда.

Как еще это сделать?

Скорость моего решения сумасшедшая.

Память расходуется, но неизвестно насколько неэффективно. Нужно точно выяснить.

 
Yury Kulikov:
Он еще немного  "подумает" и эту проблему решит: будет ставить перед сделкой подчеркивание, а перед магиком другой символ :)

Хочу заметить что в отличии от всех кто здесь у Петра скорее всего самое огромное терпение - и готовность к монотонному коду. По другому я не могу объяснить как ему удалось написать столько всего

 
Реter Konow:

Мы не можем реализовать с интом, потому что заранее не знаем количество будущих сделок. Нам нужно либо гадать, либо на каждой сделке менять размер массива и переписывать данные туда-сюда.

Как еще это сделать?

Скорость моего решения сумасшедшая.

Память расходуется, но неизвестно насколько неэффективно. Нужно точно выяснить.


Там есть только два варианта у стринга либо он изначально имеет максимальны размер (в запасе), либо также память выделяеться и в вашем случаее при процессе сложение она выделяеться каждый раз.... Т.е .тоже самое что и изменение размера массива у инта. 1в1 ну возможно что инт выделяет память дольше на 10% чем стринга выделяет память на 1 символ, при сравнении большего количества символов - полагаю победа за интом

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