HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2821  
Старый 27.04.2009, 23:24
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

rudvil, знаешь.. есть такая замечательная хренька.. массив...
где потомками a[i] являтся a[2*i]-левый и a[2*i+1]-правый (нумерация с 1).. так оно сильно быстрее работает.
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #2822  
Старый 27.04.2009, 23:45
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от desTiny  
rudvil, знаешь.. есть такая замечательная хренька.. массив...
где потомками a[i] являтся a[2*i]-левый и a[2*i+1]-правый (нумерация с 1).. так оно сильно быстрее работает.
спс, попробую)
Хотя в глубине души что-то мне подсказывает что это не самый хороший вариант.
 
Ответить с цитированием

  #2823  
Старый 27.04.2009, 23:48
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

>>Хотя в глубине души что-то мне подсказывает что это не самый хороший вариант.

Это самый хороший вариант.. поверь)
а если не хочешь верить - сравни время работы такой имплементации и со структурками
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #2824  
Старый 27.04.2009, 23:57
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме:
3578578

Репутация: 275
Отправить сообщение для Forcer с помощью ICQ
По умолчанию

Цитата:
Сообщение от desTiny  
rudvil, знаешь.. есть такая замечательная хренька.. массив...
где потомками a[i] являтся a[2*i]-левый и a[2*i+1]-правый (нумерация с 1).. так оно сильно быстрее работает.
А ты знаешь, для чего используются такие структуры данных как список, деревья? Ты будешь каждый раз перевыделять память как только у тебя массив закончится? Не говоря уже о понятности и читабельности кода.

Цитата:
спс, попробую)
Хотя в глубине души что-то мне подсказывает что это не самый хороший вариант.
Попробовать можно только лишь с той целью, чтобы убедиться, что так делать не нужно. При написании интерпретаторов, компиляторов используются такая структура данных как map(хэш-таблица, ассоциативный массив), реализованная в виде бинарного дерева поиска, как правило использующая для балансировки алгоритм красно-черных деревьев. Надеюсь не сильно запутал, но структуры данных нужно знать. Это основа.
 
Ответить с цитированием

  #2825  
Старый 28.04.2009, 00:14
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от Forcer  
А ты знаешь, для чего используются такие структуры данных как список, деревья? Ты будешь каждый раз перевыделять память как только у тебя массив закончится? Не говоря уже о понятности и читабельности кода.


Попробовать можно только лишь с той целью, чтобы убедиться, что так делать не нужно. При написании интерпретаторов, компиляторов используются такая структура данных как map(хэш-таблица, ассоциативный массив), реализованная в виде бинарного дерева поиска, как правило использующая для балансировки алгоритм красно-черных деревьев. Надеюсь не сильно запутал, но структуры данных нужно знать. Это основа.
Нет не запутал)
У меня тоже сомнения возникли насчет массива т.к. я не думаю что тот-же php или python используют массив)))
 
Ответить с цитированием

  #2826  
Старый 28.04.2009, 00:52
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме:
298300

Репутация: 128
Отправить сообщение для ss88 с помощью ICQ
По умолчанию

Цитата:
Сообщение от desTiny  
rudvil, знаешь.. есть такая замечательная хренька.. массив...
где потомками a[i] являтся a[2*i]-левый и a[2*i+1]-правый (нумерация с 1).. так оно сильно быстрее работает.
Нашел, что посоветовать, наверное, ты решил проблему разработчиков за последние лет 30, вот только нихрена не решил, не надо такой ереси советовать.

Цитата:
Попробовать можно только лишь с той целью, чтобы убедиться, что так делать не нужно. При написании интерпретаторов, компиляторов используются такая структура данных как map(хэш-таблица, ассоциативный массив), реализованная в виде бинарного дерева поиска, как правило использующая для балансировки алгоритм красно-черных деревьев. Надеюсь не сильно запутал, но структуры данных нужно знать. Это основа.
Полностью согласен. RB деревья активно используются и не зря, они относительно баллансированы, да и этот вид структуры данных имеет важное свойство - он, сцуко сортированный Хотя, видя, какие тут советы дают (обычно складывается впечатление, что их дают не программеры, а какие-то трактористы), этот пост мне понравился - все основательно и правильно.
Цитата:
Нет не запутал)
У меня тоже сомнения возникли насчет массива т.к. я не думаю что тот-же php или python используют массив)))
Ты все правильно почувствовал, такие подходы, как совет с массивами - это глупа провокация, сделанная человеком, который, судя по всему не много смыслит в данной предметной области.
 
Ответить с цитированием

  #2827  
Старый 28.04.2009, 19:03
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

ну, уважаемые мастера, прошу - посмотрите сколько будет хотя бы СОЗДАВАТЬСЯ, ну например, простейшее дерево отрезков, реализованное с указателями на структурки, и сравните с массивом.
а как я понял, вопрошающий строит дерево для синтаксического анализа и вычисления выражений, а хеш-таблицы, друзья мои, используются для определения ключевых слов языка, и потому к вышеозначенной проблеме не имеют никакого отношения... если уж использовать аналогию с машинами, то я вижу такой диалог:
тс:как поменять колесо? мне кажется надо снять все - чтоб машина была в равновесии, поставить её на кирпичи, потом найти нормальное колесо и потом поставить все обратно
я:нет, возьми запаску, сними одно - не упадёт машина на домкрате - и поставь запаску
вы: нет, не надо так делать, а чтобы поменять масло, надо сделать то-то и то-то, это конечно сложно, но ты должен это знать.

>>Нашел, что посоветовать, наверное, ты решил проблему разработчиков за последние лет 30
вообще-то её уже лет 30 назад решили и активно используют... а изменять размер массива - непонятно, почему сразу не выделить один достаточной длины.
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #2828  
Старый 28.04.2009, 19:21
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от desTiny  
а как я понял, вопрошающий строит дерево для синтаксического анализа и вычисления выражений
Абсолютно верно, теперь я в сомнениях... что мне лучше подойдёт.
Видимо нужно спросить у того кто хоть раз серьезно занимался интерпретатором и узнать что будет лучше работать т.к. тут похоже обе стороны правы)
 
Ответить с цитированием

  #2829  
Старый 28.04.2009, 19:24
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

rudvil, я ж предлагаю - посмотри и проверь) работать будут и способ со структурками, и способ с массивом. но способ со структурками а) жрёт больше памяти и б) медленней работает. И в этом нетрудно убедиться - напиши и так и так - всяко на своей шкуре лучше запоминается..
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #2830  
Старый 28.04.2009, 20:56
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме:
298300

Репутация: 128
Отправить сообщение для ss88 с помощью ICQ
По умолчанию

Цитата:
Сообщение от desTiny  
ну, уважаемые мастера, прошу - посмотрите сколько будет хотя бы СОЗДАВАТЬСЯ, ну например, простейшее дерево отрезков, реализованное с указателями на структурки, и сравните с массивом.
а как я понял, вопрошающий строит дерево для синтаксического анализа и вычисления выражений, а хеш-таблицы, друзья мои, используются для определения ключевых слов языка, и потому к вышеозначенной проблеме не имеют никакого отношения... если уж использовать аналогию с машинами, то я вижу такой диалог:
тс:как поменять колесо? мне кажется надо снять все - чтоб машина была в равновесии, поставить её на кирпичи, потом найти нормальное колесо и потом поставить все обратно
я:нет, возьми запаску, сними одно - не упадёт машина на домкрате - и поставь запаску
вы: нет, не надо так делать, а чтобы поменять масло, надо сделать то-то и то-то, это конечно сложно, но ты должен это знать.

>>Нашел, что посоветовать, наверное, ты решил проблему разработчиков за последние лет 30
вообще-то её уже лет 30 назад решили и активно используют... а изменять размер массива - непонятно, почему сразу не выделить один достаточной длины.
Вспоминается фраза: "Сержант Петренко дал предупредительный выстрел в воздух и не попал". Достаточная длина - это сколько? Не припоминаете проблему порога 640Кб оперативной памяти в ДОС? А проблему 2000-го года? А самую распространенную ошибку/уязвимость программных продуктов - переполнение буффера?
Не бывает "достаточной" длины массива. Разве что, он будет выделяться динамически, а при переполнении будет делать expand.
Далее, вы так и не сказали, что именно будет хранится в "тройках" массива в вашем чудо-решении. Если это будут просто слова, то приведите, пожалуйста хотя бы следующие алгоритмы, которые обычно предоставляются интерфейсом:
1. Обход дерева
2. Минимальный элемент
3. Максимальный элемент
4. Удаление элемента
Если же это будут структуры, то нападки на нерациональность решения традиционными деревьями - это несколько даже некультурно
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ