[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Посоветуйте книгу по алгоритмам, структурам данных
sixpoundeeer
На сколько я понимаю, чтоб писать качественный и эффективный код, нужно знать не только синтаксис и паттерны проектирования, а еще и ориентироваться в правильном построении и анализе алгоритмов. Передо мной на данном этапе изучения языка стоит вот такая проблема. К примеру, взять код из курсов от twin'a:
<?php

/**
* Function of formation of GET-parametres
* Функция формирования GET-параметров
*/

function href()
{
global $GET; // Объявляем массив $GET, сформированный ранее, глобальным
$tmp = $GET; //Переписываем переменную, что бы не влиять на глобальный массив
$href = '';
$arg = func_get_args(); // Получаем массив аргументов переданных в функцию href(тут_вот)

if($arg[0] == 'host') // Это для того, что бы сделать ссылку без параметров
return IRB_HOST;

foreach($arg as $var) // Перебираем полученные аргументы
{
$param = explode('=', $var); // Разделяем имя переменной и значение (page=gallery, например)

// Если в массиве $GET ($tmp) есть ключ, полученный выше (в данном случае 'page')

if(array_key_exists($param[0], $tmp))
$tmp[$param[0]] = $param[1]; // То этому ключу присваиваем полученное значение
else
die('The variable <b>'. $param[0] .'</b> is not defined'); // Иначе...
}

$cnt = array_flip(array_keys($tmp)); // обрезаем те параметры, которые не передавались в аргумент
$tmp = array_slice($tmp, 0, $cnt[$param[0]] + 1);

foreach($tmp as $var => $val) // Теперь поочередно вставляем значения из $GET ($tmp) в ссылку
if(IRB_REWRITE == 'on')
$href .= '/'. $val; // Если реврайт включен, через слэш
elseif(!empty($val))
$href .= '&'. $var .'='. $val; // Если нет = обычные GET параметры


if(IRB_REWRITE == 'on')
return IRB_HOST . trim($href, '/');
else
return
IRB_HOST .'?'. trim($href, '&');
}

Я понимаю этот код от корочки до корочки, но также понимаю, что сам я никогда в жизни не додумаюсь до таких решений. Так вот, посоветуйте, пожалуйста, книгу по алгоритмам и структурам данных на доступном для новичков языке. Желательно, чтоб была в сети. Или для этого нужно читать какую-то другую литературу?



Спустя 43 минуты, 9 секунд (20.11.2010 - 23:26) Lenarfate написал(а):
тут дело опыта. продумывай идею с конца, с того момента, как будто ты уже все сделал и как бы оно было. можешь на листочке схемы рисовать)) мне помогает)

Спустя 21 час, 50 минут, 25 секунд (21.11.2010 - 21:16) sixpoundeeer написал(а):
Цитата
тут дело опыта

А где ж его взять то? Если учишься по другой специальности. Книги по PHP в основном дают знания. Но они не учат пользоваться этими знаниями.

Спустя 6 минут, 58 секунд (21.11.2010 - 21:23) Lenarfate написал(а):
почитай на всякий irbis-team.com/15

Спустя 18 минут, 2 секунды (21.11.2010 - 21:41) sixpoundeeer написал(а):
Цитата (Lenarfate @ 21.11.2010 - 18:23)
почитай на всякий irbis-team.com/15

Спасибо. Этот курс я уже почти осилил. Немного осталось. Нужна еще пища. И качественная пища, а не "Пособие по синтаксису" или справочник, коими сейчас являются большинство книг-самоучителей.

Спустя 3 минуты, 40 секунд (21.11.2010 - 21:45) Lenarfate написал(а):
вот эта полезная книжка http://www.williamspublishing.com/Books/97...459-1586-3.html

Спустя 13 минут, 35 секунд (21.11.2010 - 21:59) DmitryOpalev написал(а):
Вообще, логику развивают задачи...
Я их ищу...

Спустя 8 минут (21.11.2010 - 22:07) sixpoundeeer написал(а):
Цитата (Lenarfate @ 21.11.2010 - 18:45)
вот эта полезная книжка http://www.williamspublishing.com/Books/97...459-1586-3.html

Спасибо. Нашел в электронном варианте. Завтра начну читать.
Я утром вот эту вот скачал: http://www.williamspublishing.com/Books/5-8459-0862-0.html
Что-то можете сказать про нее? Используемый там подход эффективен?

Цитата
Вообще, логику развивают задачи...
Я их ищу...

Задачи в какой области?

Спустя 11 часов, 29 минут, 55 секунд (22.11.2010 - 09:37) linker написал(а):
По алгоритмам Дональд Кнут.

Спустя 5 минут, 6 секунд (22.11.2010 - 09:42) Basili4 написал(а):
linker
Кнут это слишком тяжело там все вокруг его виртуальной машины. Вот если на сях писать то Кнут это самое то

Спустя 2 минуты, 25 секунд (22.11.2010 - 09:44) linker написал(а):
Теория алгоритмов ни к какому конкретному языку отношения не имеет. Я еще ни разу не видел в продаже книг по алгоритмам в PHP.

Спустя 8 минут, 32 секунды (22.11.2010 - 09:53) Basili4 написал(а):
linker
Не это понятно но алгоритмы рассматриваются на примерах и Кнут рассматривает примеры мало того что на сях еще и на определенной надстройке. которую на пыхе на сделаешь

Спустя 6 минут, 49 секунд (22.11.2010 - 10:00) linker написал(а):
Ты Кнута с кем-то путаешь. Ассемблер помню в его примерах, может и Ся проскакивала. Возьми любую книгу по алгоритмам и увидишь что все примеры на базовых языках: C, Pascal, Modula и еще несколько. Если книга слишком продвинута, то и чистый ассемблер может быть.

Спустя 7 минут, 36 секунд (22.11.2010 - 10:07) Basili4 написал(а):
linker
да я знаю что они на описаны на С на паскале. Но я думаю что пыха позволяет больше С и паскаль и соответственно я думаю что приведенные алгоритмы будут не самыми эффективными. С другой стороны на сях можно работать с памятью и если это будет использоваться при построение алгоритма то данный алгорим будет трудно реализовать на пыхе.

Спустя 17 минут, 10 секунд (22.11.2010 - 10:24) linker написал(а):
Оно понятно, что многие алгоритмы уже представлены одной готовой функцией, например, поиск по массиву array_search() или сортировка sort(), но если есть что-то по-сложнее, то звиняй без теории алгоритмов никуда. Банальный бинарный поиск по дереву, если ты не понимаешь его математической модели, то хрен ты что напишешь толкового.

Спустя 6 часов, 20 минут, 24 секунды (22.11.2010 - 16:45) sixpoundeeer написал(а):
Basili4
Что, в таком случае, предлагаете Вы?

Спустя 14 минут, 13 секунд (22.11.2010 - 16:59) Basili4 написал(а):
http://algolist.manual.ru/ только это

Спустя 22 часа, 18 минут, 52 секунды (23.11.2010 - 15:18) ancient mariner написал(а):
Никлаус Вирт - Алгоритмы + Структуры = Программы

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

Кстати, sixpoundeeer, вы случайно не фанат Children Of Bodom? =)

Спустя 1 час, 56 минут, 27 секунд (23.11.2010 - 17:14) sixpoundeeer написал(а):
Всем спасибо, всех заплюсил.
ancient mariner
Случайно фанат )


_____________
Как много веселых ребят. И все делают велосипед. А один из них как-нибудь утром. Придумает порох. (Виктор Цой)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.