Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация алгоритма сортировки "ручками", Нужны аргументы "ЗА" 
V
    Опции темы
borisbn
Дата 22.8.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Добрый currentDayTime() smile
Столкнулся с проблемой, не очень связанной с программированием, но где задать вопрос - не знаю.
Молодые специалисты на работе спрашивают: "Зачем нужно уметь реализовывать алгоритмы сортировки, поиска и т.п., если они уже написаны ( std::sort, std::find_if и т.д. ) ?"
То что это нужно уметь - я знаю ( и просьба - не переубеждайте меня в этом ), а вот аргументов - настоящих, а не "просто нужно", "поверь моему опыту" - найти не могу.
Помогите, плиз.
Списибо.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Abyx
Дата 22.8.2010, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



их надо уметь реализовывать только если собрался писать свою библиотеку алгоритмов
PM MAIL   Вверх
alexvs11
Дата 22.8.2010, 12:30 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 6
Всего: 10



скажите им, что вы любитель изобретать велосипеды, причем скорее всего уступающие по качеству существующим

а че минусовать, интересно будет аргументы за посмотреть smile 

Это сообщение отредактировал(а) alexvs11 - 22.8.2010, 12:56
PM MAIL   Вверх
djamshud
Дата 22.8.2010, 13:11 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Я - имеющий собственую библиотеку контейнеров и алгоритмов - пару дней назад повнивательнее познакомился с std::sort. Штука хорошая в общем и может быть даже удобная в применении. И все хорошо, если вам нужно прогнать массив из сотни элементов. Если же элементов у вас ого-го, а правило сортировки чуть более сложное, чем сравнение интов, и еще вам не наплевать на производительность, то std::sort не подойдет - он неиллюзорно сливает как минимум из-за кучи накладных вызовов функции, да еще и по указателю.

Добавлено через 40 секунд
Т.е. в данном случае обощеность алгоритма становится его ахилесовой пятой.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
W4FhLF
Дата 22.8.2010, 13:32 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 20
Всего: 121



Реализация дело второстепенное. Главное -- понимание. Просто дёргать std::sort или std::find для всего и всегда как минимум неэффективно. Скажем, нужно понимать, что например в задаче поиска k-го наименьшего числа в массиве необязательно сортировать весь массив, можно воспользоваться частичной сортировкой, а если мы имеем массив целых чисел в небольшом диапазоне, то сортировка подсчётом будет эффективнее стандартной. Тоже самое касается поиска, когда для std::set стандартный линейный std::find менее эффективен, чем двоичный std::set::find.

Как человек узнает все эти вещи -- вопрос другой. Есть несколько способов:
-- реализовать и проверить самому;
-- прочитать в книге; 
-- спросить у более опытного коллеги; 

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


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
alexvs11
Дата 22.8.2010, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 6
Всего: 10



Цитата(djamshud @  22.8.2010,  13:11 Найти цитируемый пост)
Т.е. в данном случае обощеность алгоритма становится его ахилесовой пятой.


алгоритм не очень то обобщен, ибо он имеет как минимум неск олько различных реализаций для всех типов итераторов, те для vector, list, deque итд не придется писать различные алгоритмы сортировки изза разных способов доступа
его нельзя будет просто использовать со всеми остальными контейнерами

а реализация достаточно эффективная, вообщем на работе надо заниматься работой, а не переписыванием стандартных сортировок
PM MAIL   Вверх
Abyx
Дата 22.8.2010, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



djamshud, либо у вас плохой компилятор, либо вы не понимаете принципов работы компилятора в С++
В общем случае не будет никаких вызовов по указателям, и никаких накладных вызовов функций.
Цитата(djamshud @  22.8.2010,  14:11 Найти цитируемый пост)
std::sort не подойдет - он неиллюзорно сливает как минимум из-за кучи накладных вызовов функции, да еще и по указателю.


PM MAIL   Вверх
djamshud
Дата 22.8.2010, 13:54 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Abyx,

Код

std::sort(start,end,sortfnc);


В общем случае будет как раз таки вызываться функция. По указателю. Ибо в рантайме больше никак не вызвать. Не понятно, почему сортировка не была реализована например так:

Код

std::sort<sortfnc>(start,end);


В таком случае функция подставилась бы, а при желании и заинлайнилась, во время компиляции.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Abyx
Дата 22.8.2010, 14:03 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



djamshud, вы все же не понимаете работу компилятора.
если Callable *может быть заинлайнен* - он *будет заинлайнен*

вот тут будет инлайн
Код

bool pred(..) {...}

sort(...., pred)


а вот тут не будет
Код

__declspec(dllexport) bool pred(..);

sort(...., pred)


Добавлено через 58 секунд
Цитата(djamshud @  22.8.2010,  14:54 Найти цитируемый пост)
std::sort<sortfnc>(start,end);

а вот это говорит о том что вы вообще не понимаете С++, и термина Callable в частности
PM MAIL   Вверх
ValeryLaptev
Дата 22.8.2010, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Препод



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 19.8.2010
Где: Астрахань

Репутация: нет
Всего: 1



Писать сортировки нужно в двух случаях: 
1. Когда учишься программировать. Сортировки - прекрасный способ повысить свою квалификацию в реализации не совсем уж тривиальных алгоритмов.
2. Когда стандартная сортировка не удовлетворяет по производительности. 

В любосм случае программист профессионал должен понимать, как работает стандартная быстрая сортировка. Кроме того, есть сортировки, которые справляются с массивами целых за линейное время - это тоже профи должен знать.

PM MAIL   Вверх
Любитель
Дата 22.8.2010, 14:14 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(djamshud @  22.8.2010,  13:11 Найти цитируемый пост)
Я - имеющий собственую библиотеку контейнеров и алгоритмов - 

Ничего не имею против (в данном случае), но звучит красиво. Предлагаю писать, как Имеющий Собственную Библиотеку Контейнеров и Алгоритмоа smile

Сорри за оффтоп.


--------------------
PM MAIL ICQ Skype   Вверх
djamshud
Дата 22.8.2010, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Мальчик, меня твои наезды уже ###али. Разговор про С++, а не вижуалстудиевский компилятор. В gcc например это зависит от включенных настройек оптимизации, а не магических __decl-ов в исходнике. А так как std::sort может быть уже скомпилированной, в нее не заинланиться даже при желании. Поумерь пыл.

Добавлено через 1 минуту и 52 секунды
Любитель, ну тут кто-то что-то сказал про тех, кто реализует собственные библиотеки, вот я и уточнил про себя:).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Abyx
Дата 22.8.2010, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



Цитата(djamshud @  22.8.2010,  15:25 Найти цитируемый пост)
А так как std::sort может быть уже скомпилированной, в нее не заинланиться даже при желании. 

Твой g++ - гуан*, и STL в нем гуан*.
C++ - хороший язык, а из за всяких кривых компиляторов у всяких джамшутов о нем складывается неверное впечатление.
Нормальные компиляторы компилят нормальный код, и в нормальных компиляторах есть кодогенерация во время линковки, и она работает по крайней мере для CRT+STL.
PM MAIL   Вверх
djamshud
Дата 22.8.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Abyx, ну что тебя вечно на обсуждение говна тянет? _Особо_ одаренным я рекомендую узнать значение выражения "в общем случае", а потом подумать, какое отношение к этому имет реализации конкретных компиляторов и библиотек.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Abyx
Дата 22.8.2010, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



ах да, накладные расходы на вызов по указателю при "сложном правиле сортировки" - это сколько?
в процентах от времени работы сложного правила сортировки?

Добавлено через 1 минуту и 31 секунду
djamshud, особо одаренным вроде вас, я предлагаю привести конкретные цифры и код.
PM MAIL   Вверх
Любитель
Дата 22.8.2010, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92




 ! 
Любитель
Предлагаю всем перестать ругаться и перевести дискусию в мирное русло!



--------------------
PM MAIL ICQ Skype   Вверх
alexvs11
Дата 22.8.2010, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 6
Всего: 10



лучше всего коллегам ТС можно доказать приведя код сортировки и сравнение с STL по эффективности, желательно шаблонный и работающий со всеми типами контейнеров
PM MAIL   Вверх
Abyx
Дата 22.8.2010, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



alexvs11, а эффективность(стоимость) написания и поддержки кода сравнивать будем?
PM MAIL   Вверх
alexvs11
Дата 22.8.2010, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 6
Всего: 10



Abyx, думаю это сразу станет очевидным

PM MAIL   Вверх
ИванМ
Дата 22.8.2010, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



Цитата(borisbn @  22.8.2010,  12:04 Найти цитируемый пост)
Молодые специалисты на работе спрашивают: "Зачем нужно уметь реализовывать алгоритмы сортировки, поиска и т.п., если они уже написаны ( std::sort, std::find_if и т.д. ) ?"

Для того, что бы из словосочетания "молодой специалист" исключить слово "молодой".
PM MAIL   Вверх
Леопольд
Дата 23.8.2010, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(djamshud @  22.8.2010,  13:54 Найти цитируемый пост)
Код
std::sort<sortfnc>(start,end);
В таком случае функция подставилась бы, а при желании и заинлайнилась, во время компиляции. 
В параметрах шаблона передается только информация о типе. Для классов (функциональных объектов), это подойдёт, но не для функций, их нельзя инстанцировать. Однако это не означает что функция не встроится.

Добавлено @ 09:44
Цитата(Abyx @  22.8.2010,  14:37 Найти цитируемый пост)
Твой g++ - гуан*, и STL в нем гуан*.
g++ не его. А утверждение голословное и необдуманное.


Это сообщение отредактировал(а) Леопольд - 23.8.2010, 09:45


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
djamshud
Дата 23.8.2010, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Леопольд, в параметры шаблонов можно передавать любые значения времени компиляции. Функцию тоже можно передать, как-то так:

Код

template<void(*bar)()>
void foo(){
bar();}




--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Леопольд
Дата 23.8.2010, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Код
template<void(*bar)()>
void foo(){
bar();}
Это не скомпилируется. Я же говорил что шаблоны это не копипаст... smile
Этот код можно переписать так:
Код
typedef void(*bar)();
bar();


Не, нельзя. Разные вещи...

Это сообщение отредактировал(а) Леопольд - 23.8.2010, 10:10


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Abyx
Дата 23.8.2010, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



Цитата(Леопольд @  23.8.2010,  10:40 Найти цитируемый пост)
В параметрах шаблона передается только информация о типе.

А еще там можно передать константу, например указатель на функцию. Не знали?
PM MAIL   Вверх
djamshud
Дата 23.8.2010, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Леопольд, данунах?! :) УМВР


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Леопольд
Дата 23.8.2010, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(Abyx @  23.8.2010,  10:03 Найти цитируемый пост)
А еще там можно передать константу, например указатель на функцию.
Кхм... Никогда не пробовал. Действтельно, что мешает...



--------------------
вопросов больше чем ответов
PM MAIL   Вверх
djamshud
Дата 23.8.2010, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Леопольд, я же говорил, шаблоны - это копипаст :)


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Леопольд
Дата 23.8.2010, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(djamshud @  23.8.2010,  10:12 Найти цитируемый пост)
Леопольд, я же говорил, шаблоны - это копипаст smile 
Всегда готов "подставить ножку" если кто-то споткнулся... smile

Код
template<typename T>
void foo(){
    T()();
}
template<typename T, T& bar>
void foo(){
    bar();
}

void bar(){
    std::cout<<"test"<<std::endl;
}
struct Bar{
    void operator() (){
        std::cout<<"test"<<std::endl;
    }
};

int main(){

    foo<void(), bar>();
    foo<Bar>();

    return 0;
}

Так будет более обобщённо.

Это сообщение отредактировал(а) Леопольд - 23.8.2010, 10:27


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
xvr
Дата 23.8.2010, 15:09 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(djamshud @  22.8.2010,  14:25 Найти цитируемый пост)
А так как std::sort может быть уже скомпилированной, 
Не может - она шаблонная
Цитата

в нее не заинланиться даже при желании.
При желании (и доброй воле) компилятора в нее всегда можно заинлайнится (т.к. она шаблонная - см. выше)  smile 



PM MAIL   Вверх
ИванМ
Дата 23.8.2010, 15:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



Цитата(borisbn @  22.8.2010,  12:04 Найти цитируемый пост)
"Зачем нужно уметь реализовывать алгоритмы сортировки, поиска и т.п., если они уже написаны ( std::sort, std::find_if и т.д. ) ?"

На счет поиска. Если кто-то не умеет реализовывать алгоритм поиска, то он не знает конструкций for и if, а если он их не знает, то до звания "специалиста" ему далеко.
На счет сортировки. Что значит "уметь"? Есть, например, простой алгоритм сортировки "пузырька". Если уметь значит знать его наизусть, то это не сложно, и смысла большого в этом нет, т.к. этот алгоритм годится только в простейших программах. Что касается более сложных и оптимальных алгоритмов (пирамидальный и проч.), то они довольно сложны, и выучивать их нет смысла. Всегда можно обратиться в справочник и проч..

Это сообщение отредактировал(а) ИванМ - 23.8.2010, 15:18
PM MAIL   Вверх
baldina
Дата 23.8.2010, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



все реализации std::sort,  которые я видел, довольно похожи, и весьма неплохо реализованы.
написать лучше для частного случая (если сортируемая последовательность не имеет особенностей) довольно сложно, проще грамотно осуществить вызов std::sort. разговор про накладные расходы на вызов функции вздор, конечно. 

по теме топикстартера: мне в голову приходят два основных соображения:
1. программист должен понимать устройство основных алгоритмов. самое эффективное средство - реализовать самому
2. это хорошая практика для того что бы перестать быть "начинающим". можно реализовывать и другие алгоритмы, но преимужество поиска, сортировки и т.п. в том, что они а) очень хорошо изучены б) в их реализациях используются приемы, применимые во многих других алгоритмах

порекомендуйте своим коллегам эту книжку

PM MAIL   Вверх
Abyx
Дата 24.8.2010, 10:42 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



Эх, что-то у меня настроение хорошее...
На самом деле, djamshud в чем-то прав на счет инлайна и std::sort.

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

Abyx скомпилил несколько вариантов кода, и получил весьма занятные результаты.
Но выкладывать я сюда ничего не буду, ибо неохота бисер метать. Кому интересно, компилятор в руки и вперед.
PM MAIL   Вверх
baldina
Дата 24.8.2010, 12:03 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата

и не посмотрел на дизасм

На самом деле, Abyx в чем-то прав... Вероятно десяток (сотню, кто больше?) инструкций можно сэкономить...
А вот если интерес практический, а не академический, есть ли смысл в подобной оптимизации?
Настроение у меня хорошее, и ответ я знаю. Но выкладывать я сюда ничего не буду, ибо неохота бисер метать.
PM MAIL   Вверх
borisbn
Дата 31.8.2010, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(baldina @  23.8.2010,  15:31 Найти цитируемый пост)
1. программист должен понимать устройство основных алгоритмов. самое эффективное средство - реализовать самому2. это хорошая практика для того что бы перестать быть "начинающим". можно реализовывать и другие алгоритмы, но преимужество поиска, сортировки и т.п. в том, что они а) очень хорошо изучены б) в их реализациях используются приемы, применимые во многих других алгоритмах


честно говоря, единственное здравое высказывание по теме. 
baldina, спасибо.
Закрываю


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Master01
Дата 3.9.2010, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 22.8.2007

Репутация: 2
Всего: 2





Вообще знания никогда не бывают лишними! А уж такая тема как "базовые алгоритмы" должна быть для программистов как мёд для пчёл! на роду написано читать и читать...

То что это изучено и 10 раз заимплеменчено КЕМ-ТО, вовсе не значит, что это не надо изучать НАМ!, а тем более, когда речь идёт о таких базовых вещах... это нужно знать, чтобы потом применить - и, как справедливо было замечено, "применение" может найтись совсем не в области поиска и тогда никакие справочки увы не помогут.

Ландау своим студентам говорил "не спрашивайте как это вам может понадобиться, когда оно вам понадобиться вы этим воспользуетесь."

хотя если кому-то по вере ближе байки про "экономическую неэффективность", то тут увы...
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1725 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.