Алгоритмы vs. структуры данных
От: ffar  
Дата: 22.06.10 10:22
Оценка: :))) :))) :)
Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?
Re: Алгоритмы vs. структуры данных
От: deniok Россия  
Дата: 22.06.10 10:27
Оценка: :))
Здравствуйте, ffar, Вы писали:

F>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?


Кто такие "хорошие алгоритмы" и "хорошие структуры данных"? Это те, при разработке которых ни одно животное не пострадало?
Re: Алгоритмы vs. структуры данных
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 22.06.10 10:27
Оценка:
Здравствуйте, ffar, Вы писали:

F>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?


IMHO один вариант другого не лучше другого. Но если уж "пропадать", то лучше хорошие структуры данных
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Re: Алгоритмы vs. структуры данных
От: Pavel Dvorkin Россия  
Дата: 22.06.10 10:28
Оценка: +6
Здравствуйте, ffar, Вы писали:

F>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?


Хорошие алгоритмы с хорошими структурами данных.
With best regards
Pavel Dvorkin
Re[2]: Алгоритмы vs. структуры данных
От: ffar  
Дата: 22.06.10 10:29
Оценка: :)
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, ffar, Вы писали:


F>>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?


D>Кто такие "хорошие алгоритмы" и "хорошие структуры данных"? Это те, при разработке которых ни одно животное не пострадало?


Изначальный вопрос — философский, потому что данный раздел — философский, поэтому точных формулировок тут не требуется
Re[2]: Алгоритмы vs. структуры данных
От: ffar  
Дата: 22.06.10 10:30
Оценка:
Здравствуйте, fplab, Вы писали:

F>Здравствуйте, ffar, Вы писали:


F>>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?


F>IMHO один вариант другого не лучше другого. Но если уж "пропадать", то лучше хорошие структуры данных


Спасибо за мнение, а какая аргументация? )))
Re[3]: Алгоритмы vs. структуры данных
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 22.06.10 10:33
Оценка:
Здравствуйте, ffar, Вы писали:

F>Здравствуйте, fplab, Вы писали:


F>>Здравствуйте, ffar, Вы писали:


F>>>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?


F>>IMHO один вариант другого не лучше другого. Но если уж "пропадать", то лучше хорошие структуры данных


F>Спасибо за мнение, а какая аргументация? )))


Глядя на хорошие структуры данных можно хотя бы попытаться понять какая задача решается. Мне во всяком случае так проще. Может, кому-то удобнее танцевать от алгоритма.
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Re: Алгоритмы vs. структуры данных
От: monax  
Дата: 22.06.10 10:44
Оценка: +1 -1
Здравствуйте, ffar, Вы писали:

F>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?


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

Я бы выбрал нормальные структуры данных. Ну вот как пример — сортировка строк. У нас есть массив со строками, мы можем его отсортировать как "плохой" пузырьковой, так и "хорошей" быстрой. А вот если у нас строки не в массиве, а в виде:
std::string s1, s2, s3, s4;

То хоть какой алгоритм возьми — реализовывать его замучаешься.

Другой пример. Представь, что все данные в программе лежат в одной структуре, которая пишется в файл (по аналогии с БД — у нас одна таблица с двумя сотнями строк). Тут хоть тресни, а конфетку из такого слепить будет сложно.
Re: Алгоритмы vs. структуры данных
От: Гест Украина https://zverok.github.io
Дата: 22.06.10 10:49
Оценка: 193 (13) +4
Здравствуйте, ffar, Вы писали:

F>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?


Одни кричат: "Что форма? Пустяки!
Когда в хрусталь налить навозной жижи —
Не станет ли хрусталь безмерно ниже?"

Другие возражают: "Дураки!
И лучшего вина в ночном сосуде
Не станут пить порядочные люди".

Им спора не решить... А жаль!
Ведь можно наливать... вино в хрусталь.

Re[3]: Алгоритмы vs. структуры данных
От: fmiracle  
Дата: 22.06.10 10:52
Оценка: 1 (1) +3
Здравствуйте, ffar, Вы писали:

F>>>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?

D>>Кто такие "хорошие алгоритмы" и "хорошие структуры данных"? Это те, при разработке которых ни одно животное не пострадало?
F>Изначальный вопрос — философский, потому что данный раздел — философский, поэтому точных формулировок тут не требуется

И точных ответов тоже получить, видимо, не получится....

Алгоритмы и структуры данных не бывают хорошими или плохими, они бывают подходящими к данной конкретной задаче или неподходящими.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[2]: Алгоритмы vs. структуры данных
От: Pavel Dvorkin Россия  
Дата: 22.06.10 11:01
Оценка:
Здравствуйте, monax, Вы писали:

M>Я бы выбрал нормальные структуры данных. Ну вот как пример — сортировка строк. У нас есть массив со строками, мы можем его отсортировать как "плохой" пузырьковой, так и "хорошей" быстрой. А вот если у нас строки не в массиве, а в виде:

M>
M>std::string s1, s2, s3, s4;
M>

M>То хоть какой алгоритм возьми — реализовывать его замучаешься.

А чего тут мучаться — создать массив из указателей на строки и свести задачу к предыдущей.

M>Другой пример. Представь, что все данные в программе лежат в одной структуре, которая пишется в файл (по аналогии с БД — у нас одна таблица с двумя сотнями строк). Тут хоть тресни, а конфетку из такого слепить будет сложно.


Откроем memory-mapped file, расставим указатели на данные и слепим конфетку.
With best regards
Pavel Dvorkin
Re: Алгоритмы vs. структуры данных
От: Sharov Россия  
Дата: 22.06.10 11:05
Оценка:
Здравствуйте, ffar, Вы писали:

F>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?

Хороший риторический вопрос.
Есть смутное ощущение, что хорошие структуры данных все же важней. Как мне кажется алгоритмы не так сложно будет переделать с
продуманными структурами нежели наоборот.
Кодом людям нужно помогать!
Re[3]: Алгоритмы vs. структуры данных
От: Кодёнок  
Дата: 22.06.10 11:26
Оценка: 1 (1) +1 :)
Здравствуйте, ffar, Вы писали:

F>>>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?

D>>Кто такие "хорошие алгоритмы" и "хорошие структуры данных"? Это те, при разработке которых ни одно животное не пострадало?
F>Изначальный вопрос — философский, потому что данный раздел — философский, поэтому точных формулировок тут не требуется

Ты путаешь философию с со словоблудием алкашей на лавочке.
Re[4]: Алгоритмы vs. структуры данных
От: ffar  
Дата: 22.06.10 11:56
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, ffar, Вы писали:


F>>>>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?

D>>>Кто такие "хорошие алгоритмы" и "хорошие структуры данных"? Это те, при разработке которых ни одно животное не пострадало?
F>>Изначальный вопрос — философский, потому что данный раздел — философский, поэтому точных формулировок тут не требуется

Кё>Ты путаешь философию с со словоблудием алкашей на лавочке.


Оскорбить хочешь?
Re[3]: Алгоритмы vs. структуры данных
От: monax  
Дата: 22.06.10 11:57
Оценка:
Ну во-первых, это нечестно! Это подход в стиле Хорошие алгоритмы с хорошими структурами данных.
Автор: Pavel Dvorkin
Дата: 22.06.10
. Взять плохие структуры данных, сделать для них обёртку и получаем хороший алгоритм и хорошие структуры. Это хороший подход, ещё лучше сразу не брать ничего плохого. Но ведь сейчас мы обсуждаем или/или.

А во-вторых:
M>>Я бы выбрал нормальные структуры данных. Ну вот как пример — сортировка строк. У нас есть массив со строками, мы можем его отсортировать как "плохой" пузырьковой, так и "хорошей" быстрой. А вот если у нас строки не в массиве, а в виде:
M>>
M>>std::string s1, s2, s3, s4;
M>>

M>>То хоть какой алгоритм возьми — реализовывать его замучаешься.

PD>А чего тут мучаться — создать массив из указателей на строки и свести задачу к предыдущей.


А если так?
std::string s1, s2, s3, s4,....,s2000; // я сильно утрирую


Это не просто моя фантазия. Мне как-то довелось видеть исходник для системы тестирования, сделанной очень интересным человеком. Окно приложения, вопрос, несколько радио-батонов (варианты ответа), кнопка "далее". Человек это писал на делфи. На каждый вопрос были свои радиобатоны (которые уже были на форме), своя кнопка и свой label с вопросом. На каждую кнопку свой обработчик. Поскольку вопросов было около 70, то человек сваял 70 методов обработки кликов по 70 кнопкам.

З.Ы. всё же я хочу подчеркнуть — это нечестно!
Re: Алгоритмы vs. структуры данных
От: ZevS Россия  
Дата: 22.06.10 11:59
Оценка:
Здравствуйте, ffar, Вы писали:

F>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?

Что лучше: производительность или универсальность?
Re[4]: Алгоритмы vs. структуры данных
От: Pavel Dvorkin Россия  
Дата: 22.06.10 12:13
Оценка:
Здравствуйте, monax, Вы писали:

M>Ну во-первых, это нечестно! Это подход в стиле Хорошие алгоритмы с хорошими структурами данных.
Автор: Pavel Dvorkin
Дата: 22.06.10
. Взять плохие структуры данных, сделать для них обёртку и получаем хороший алгоритм и хорошие структуры. Это хороший подход, ещё лучше сразу не брать ничего плохого. Но ведь сейчас мы обсуждаем или/или.


А не надо или/или. Надо взять лучший алгоритм с лучшей структурой данных, причем не абстрактно лучшие, а в применении к конкретной задаче. А зачем брать хорошую структуру данных и портить все дело плохим алгоритмом или наоборот — не понимаю. Единственный аргумент — структура данных legacy, но тогда нет смысла обсуждать, хорошая она или плохая — какая уж есть.

M>А если так?

M>
M>std::string s1, s2, s3, s4,....,s2000; // я сильно утрирую
M>


Ну и что ? Сколько si — столько и строк типа ps[i] = &si; . Если тебе 2000 описаний переменных не сложно сделать, что за проблема для тебя еще 2000 присваиваний сделать ?


ps[0] = &s0;
ps[1] = &s1;
...
ps[2000] = &s2000;


Многоточия в обоих случаях заполни сам как автор идеи
With best regards
Pavel Dvorkin
Re[5]: Алгоритмы vs. структуры данных
От: monax  
Дата: 22.06.10 12:21
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А не надо или/или. Надо взять лучший алгоритм с лучшей структурой данных, причем не абстрактно лучшие, а в применении к конкретной задаче. А зачем брать хорошую структуру данных и портить все дело плохим алгоритмом или наоборот — не понимаю. Единственный аргумент — структура данных legacy, но тогда нет смысла обсуждать, хорошая она или плохая — какая уж есть.


Сложно спорить, если согласен с оппонентом. Собственно, на этом можно и остановиться.

PD>Ну и что ? Сколько si — столько и строк типа ps[i] = &si; . Если тебе 2000 описаний переменных не сложно сделать, что за проблема для тебя еще 2000 присваиваний сделать ?



PD>
PD>ps[0] = &s0;
PD>ps[1] = &s1;
PD>...
PD>ps[2000] = &s2000;
PD>


PD>Многоточия в обоих случаях заполни сам как автор идеи


Я не автор, я такое видел.
Re: Алгоритмы vs. структуры данных
От: dilettante  
Дата: 22.06.10 12:21
Оценка: +2 :)
Здравствуйте, ffar, Вы писали:

F>Что лучше: хорошие алгоритмы с плохими структурами данных или плохие алгоритмы с хорошими структурами данных?


А какая между ними разница?
Re: Алгоритмы vs. структуры данных
От: MasterZiv СССР  
Дата: 22.06.10 13:02
Оценка: +2
ffar wrote:

> Что лучше: хорошие алгоритмы с плохими структурами данных или плохие

> алгоритмы с хорошими структурами данных?

Лучше хорошие алгоритмы с хорошими структурами данных.
Ты что-то другое хотел услышать ?

На самом деле структуры данных — то могут быть любыми,
но достаточными для работы алгоритмов. Например, если надо
делать вставку/удаление в центр текстовой строки, нужны связные
списки. Без них быстрой вставки не будет. Какие угодно плохие,
но связные списки. Если нужен просмотр строки в прямом и обратном
порядке, нужен двусвязный список. Какой угодно, но двусвязный.

Так что, если серьёзно, лучше хорошие алгоритмы с достаточными для них
структурами данных.
Posted via RSDN NNTP Server 2.1 beta
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.