Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения - страница 9
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добавлю, что в решении я использовал две функции и один массив. Нет указателей или подключений.
Ваше решение никуда не годится. У Вас уже для 100 слов резервируется массив размером 100x100x255 т.е. 2 550 000 ячеек! А если слов будет 10 0000 - предел памяти в 32 битных системах будет достигнут. А если коллизий будет больше 100? Сколько слов начинается на букву S, а на букву P? - Явно больше 100, и что теперь из-за этого их не хранить?
Т.е. нужно для каждой задачи нащупать золотую середину между размером словаря (RAM) и вычислительной сложностью хеш-функции (CPU).
После всего написанного подумалось, что нет практической задачи хранить тики обсуждаемым в ветке способом. Отсортированы они по времени и лежат в простом массиве.
Точно так же с History Orders/Deals. Храняться, судя по HistorySelect, они так же по времени в массиве. И чую, нет там (в текущей реализации) ничего из обсуждаемого, чтобы искать запись по тикету или ID.
А все потому, что нецелесообразно в случае с названной историей что-то городить. Простого массива для практики вполне хватает.
Большая просьба писать лаконично, без портянок в виде шапок и лишних сущностей.
Это учебный пример, поэтому извините, но нет. Правда замечу, что в боевом варианте код так и пишется: максимально лаконично и эффективно (так как Вы любите). В учебных примерах код пишется для всех, максимально просто и понятно, что бы разобраться мог даже неискушенный пользователь.
з.ы. Шапки, хорошо, буду убирать.Правда замечу, что в боевом варианте код так и пишется: максимально лаконично и эффективно (так как Вы любите).
В реальности на проектах код пишется согласно "code of conduct".
И такой вариант как у fxsaber не используется:
Причина банальная - невозможность удобной отладки.
Ваше решение никуда не годится. У Вас уже для 100 слов резервируется массив размером 100x100x255 т.е. 2 550 000 ячеек! А если слов будет 10 0000 - предел памяти в 32 битных системах будет достигнут. А если коллизий будет больше 100? Сколько слов начинается на букву S, а на букву P? - Явно больше 100, и что теперь из-за этого их не хранить?
Вернулся изучить предложенный код от Реter Konow код.
Извините, но это полный мрак и тотальное непонимание темы хешей вообще, не говоря о хеш-таблицах.
Для чего создавать этот гроб на колесах, если можно пойти на хабр и хотя бы познакомиться с темой хешей.
Да, достойно реализовать собственную хеш-таблицу - это не тривиальная задача.
Но в предложенных кодах даже и речи о каком-либо понимании и не идет.
Друзья. Вижу ветка затихла.
Не хочу мешать обсуждению и поэтому добровольно удаляюсь.
Возможно, библиотека содержит массу всего интересного.
Обсуждайте.
(Мое решение в любом случае хуже, потому что в 3.2 раза медленнее.)
Ваше решение никуда не годится. У Вас уже для 100 слов резервируется массив размером 100x100x255 т.е. 2 550 000 ячеек! А если слов будет 10 0000 - предел памяти в 32 битных системах будет достигнут. А если коллизий будет больше 100? Сколько слов начинается на букву S, а на букву P? - Явно больше 100, и что теперь из-за этого их не хранить?
Размер массива можно легко менять под размер словаря.
Бесконечные варианты в расчет не брал.
Вернулся изучить предложенный код от Реter Konow код.
Извините, но это полный мрак и тотальное непонимание темы хешей вообще, не говоря о хеш-таблицах.
Для чего создавать этот гроб на колесах, если можно пойти на хабр и хотя бы познакомиться с темой хешей.
Да, достойно реализовать собственную хеш-таблицу - это не тривиальная задача.
Но в предложенных кодах даже и речи о каком-либо понимании и не идет.
Ваше решение никуда не годится. У Вас уже для 100 слов резервируется массив размером 100x100x255 т.е. 2 550 000 ячеек! А если слов будет 10 0000 - предел памяти в 32 битных системах будет достигнут. А если коллизий будет больше 100? Сколько слов начинается на букву S, а на букву P? - Явно больше 100, и что теперь из-за этого их не хранить?
В моем варианте врядли может быть больше 100 коллизий. Вы можете придумать более 100 слов которые начинаются на одинаковую букву и имеют одинаковое количество букв?
(кроме вариантов "text 1", "text 2", "text 3", "text 4", "text 5"...)