Анализ_алгоритмов_Вводный_курс_2004_Дж_Макконелл.zip
13 MB
📕 Анализ алгоритмов: Вводный курс [2004] Дж. Макконелл
Формально книга позиционируется как вводный курс, стремящийся демистифицировать сложную тему анализа эффективности алгоритмов, избегая излишней формализации и математической строгости. Макконнелл ставит перед собой амбициозную задачу: объяснить ключевые концепции (О-нотация, анализ затрат времени, рекуррентные соотношения) на интуитивном уровне, делая материал доступным для студентов, не обладающих серьёзной математической подготовкой. Эта гуманистическая, объяснительная миссия — главный и безусловный плюс книги.
➕ Плюсы книги:
1. Доступность изложения. Автор действительно преуспел в том, чтобы говорить просто о сложном. Объяснения таких понятий, как асимптотическая сложность, «худший/средний/лучший случай», часто построены на удачных аналогиях и пошаговых рассуждениях. Для человека, впервые сталкивающегося с этими концепциями, книга может стать «спасательным кругом».
2. Упор на понимание, а не на формальности. Вместо сухих теорем и доказательств Макконнелл часто прибегает к эмпирическому подходу: предлагает «пощупать» разницу между алгоритмами, сравнивая время их выполнения на конкретных примерах. Это формирует важную первичную интуицию.
3. Практическая ориентированность. Рассмотрение не только классических алгоритмов сортировки и поиска, но и вопросов эмпирического измерения времени, оценки стоимости операций, анализа использования памяти — выгодно отличает книгу от чисто теоретических трактатов.
4. Главы об эмпирическом анализе и отладке. Эти разделы, посвящённые методологии тестирования производительности и поиску «узких мест», являются, пожалуй, наиболее ценными и вневременными. Они прививают важнейшие инженерные навыки.
➖ Минусы книги:
1. Поверхностность и недостаток глубины. Стремление к простоте часто оборачивается серьёзным упрощенчеством. Книга даёт иллюзию понимания, которой может оказаться недостаточно для успешного изучения последующих, более строгих курсов (например, по структурам данных или алгоритмам). Студент, освоивший материал только по Макконнеллу, окажется неподготовленным к формальному языку Кормена, Лейзерсона или Кнута.
2. Устаревший инструментарий и контекст. 2004 год — это эпоха доминирования Java и C++, но даже для того времени выбор инструментов (например, акцент на псевдокоде, напоминающем Паскаль) выглядел консервативно. Сегодня же ссылки на конкретные измерительные методики и «железо» безнадёжно устарели. Это снижает практическую ценность многих глав для современного читателя.
3. Несистематичность. Книга напоминает скорее набор лекций или эссе, чем целостный учебник. Некоторые важные темы (например, динамическое программиние или жадные алгоритмы) затрагиваются лишь вскользь, в то время как менее значительным вопросам уделяется непропорционально много внимания.
4. Размытость целевой аудитории. Кому она адресована сейчас? Серьёзному студенту-информатику её будет катастрофически не хватать. Практикующему разработчику-самоучке, возможно, будет полезен стиль, но содержание придётся искать в более современных источниках. Остаётся узкая ниша: абсолютный новичок-гуманитарий, желающий получить самое общее представление «без математики».
▪️ Для кого может быть полезна: Для студентов непрофильных специальностей, начинающих самоучек с гуманитарным складом ума, или как самое первое, «нулевое» чтение перед изучением серьёзных учебников. А также для преподавателей, ищущих удачные бытовые аналогии для объяснения сложных понятий.
▪️ Кому стоит обойти стороной: Студентам бакалавриата компьютерных наук, готовящимся к техническим собеседованиям разработчикам, а также всем, кто ищет строгий, глубокий и современный охват темы.
▪️ Главный вывод: Книга выполнила свою историческую миссию по популяризации области, но на сегодняшний день она является скорее интеллектуальным антиквариатом, нежели актуальным учебным пособием.
#cpp #java #cs #алгоритмы #сети #cplusplus #подборка_книг #IT #разработка
💡 Physics.Math.Code // @physics_lib
Формально книга позиционируется как вводный курс, стремящийся демистифицировать сложную тему анализа эффективности алгоритмов, избегая излишней формализации и математической строгости. Макконнелл ставит перед собой амбициозную задачу: объяснить ключевые концепции (О-нотация, анализ затрат времени, рекуррентные соотношения) на интуитивном уровне, делая материал доступным для студентов, не обладающих серьёзной математической подготовкой. Эта гуманистическая, объяснительная миссия — главный и безусловный плюс книги.
➕ Плюсы книги:
1. Доступность изложения. Автор действительно преуспел в том, чтобы говорить просто о сложном. Объяснения таких понятий, как асимптотическая сложность, «худший/средний/лучший случай», часто построены на удачных аналогиях и пошаговых рассуждениях. Для человека, впервые сталкивающегося с этими концепциями, книга может стать «спасательным кругом».
2. Упор на понимание, а не на формальности. Вместо сухих теорем и доказательств Макконнелл часто прибегает к эмпирическому подходу: предлагает «пощупать» разницу между алгоритмами, сравнивая время их выполнения на конкретных примерах. Это формирует важную первичную интуицию.
3. Практическая ориентированность. Рассмотрение не только классических алгоритмов сортировки и поиска, но и вопросов эмпирического измерения времени, оценки стоимости операций, анализа использования памяти — выгодно отличает книгу от чисто теоретических трактатов.
4. Главы об эмпирическом анализе и отладке. Эти разделы, посвящённые методологии тестирования производительности и поиску «узких мест», являются, пожалуй, наиболее ценными и вневременными. Они прививают важнейшие инженерные навыки.
➖ Минусы книги:
1. Поверхностность и недостаток глубины. Стремление к простоте часто оборачивается серьёзным упрощенчеством. Книга даёт иллюзию понимания, которой может оказаться недостаточно для успешного изучения последующих, более строгих курсов (например, по структурам данных или алгоритмам). Студент, освоивший материал только по Макконнеллу, окажется неподготовленным к формальному языку Кормена, Лейзерсона или Кнута.
2. Устаревший инструментарий и контекст. 2004 год — это эпоха доминирования Java и C++, но даже для того времени выбор инструментов (например, акцент на псевдокоде, напоминающем Паскаль) выглядел консервативно. Сегодня же ссылки на конкретные измерительные методики и «железо» безнадёжно устарели. Это снижает практическую ценность многих глав для современного читателя.
3. Несистематичность. Книга напоминает скорее набор лекций или эссе, чем целостный учебник. Некоторые важные темы (например, динамическое программиние или жадные алгоритмы) затрагиваются лишь вскользь, в то время как менее значительным вопросам уделяется непропорционально много внимания.
4. Размытость целевой аудитории. Кому она адресована сейчас? Серьёзному студенту-информатику её будет катастрофически не хватать. Практикующему разработчику-самоучке, возможно, будет полезен стиль, но содержание придётся искать в более современных источниках. Остаётся узкая ниша: абсолютный новичок-гуманитарий, желающий получить самое общее представление «без математики».
▪️ Для кого может быть полезна: Для студентов непрофильных специальностей, начинающих самоучек с гуманитарным складом ума, или как самое первое, «нулевое» чтение перед изучением серьёзных учебников. А также для преподавателей, ищущих удачные бытовые аналогии для объяснения сложных понятий.
▪️ Кому стоит обойти стороной: Студентам бакалавриата компьютерных наук, готовящимся к техническим собеседованиям разработчикам, а также всем, кто ищет строгий, глубокий и современный охват темы.
▪️ Главный вывод: Книга выполнила свою историческую миссию по популяризации области, но на сегодняшний день она является скорее интеллектуальным антиквариатом, нежели актуальным учебным пособием.
#cpp #java #cs #алгоритмы #сети #cplusplus #подборка_книг #IT #разработка
💡 Physics.Math.Code // @physics_lib
👍52❤14🔥10🗿8⚡1✍1🤩1
Media is too big
VIEW IN TELEGRAM
00:00 Зависимости и хедера
08:22 Build.sh
11:48 Makefiles и декларативная модель
19:51 Ленивые и переменные
30:52 Автоматические переменные
36:15 Первая версия makefile
41:33 Функции и wildcards
47:40 Вторая версия makefile и зависимости от хедеров
56:36 Третья итерация: почти идеальный makefile
01:06:26 Знакомство с cmake
01:19:35 Бонус. Немного больше про cmake.
01:30:40 Окончательные уроки.
автор: tilir
🔨 Поговорим о двух столпах сборки C-проектов: Make и CMake. Их часто противопоставляют, но на самом деле они решают разные задачи в цепочке превращения кода в бинарник.
▪️Make (или make и Makefile) — Это менеджер задач, который исполняет команды, описанные в Makefile. Его логика проста: цели, зависимости и команды.
app: main.o utils.o
gcc main.o utils.o -o app
main.o: main.c
gcc -c main.c
utils.o: utils.c
gcc -c utils.c
clean:
rm -f *.o app
Запускаем
make — и он по цепочке зависимостей собирает всё, что изменилось.Плюс: Полный контроль, переносимость (если использовать общие команды).
Минус: Писать
Makefile для большого кроссплатформенного проекта — боль и рутина.▪️ CMake (и CMakeLists.txt) — это мета-сборщик или система генерации скриптов сборки. CMake не компилирует сам, а генерирует нативные файлы для других систем: Makefile для Linux/macOS, .sln для Visual Studio, проект для Xcode и т.д.
cmake_minimum_required(VERSION 3.10)
project(MyApp)
add_executable(app main.c utils.c)
Запускаем так:
mkdir build && cd build
cmake ..
make
Плюс: Кроссплатформенность, управление зависимостями (find_package), относительная простота для сложных проектов.
Минус: Свой язык и абстракция, которая иногда «утекает».
▫️ Make — низкоуровневый инструмент, который говорит компилятору как и когда делать свою работу.
▫️ CMake — высокоуровневый инструмент, который говорит разным системам сборки (включая Make), как они должны работать с вашим проектом.
▫️ CMake использует Make? Да! Чаще всего CMake генерирует Makefile, а затем вы вызываете make, который уже управляет компилятором.
▫️ Для маленьких, учебных или специфичных проектов — Makefile может быть быстрее и понятнее. Для средних/крупных или кроссплатформенных — CMake почти стандарт индустрии.
❓А что вы предпочитаете в своих проектах и почему? Может, у вас есть любимый лайфхак для Makefile или неочевидный трюк с CMake? Или вы вообще используете что-то третье (Meson, Bazel, простой скрипт)? Делитесь опытом!
#cpp #cmake #программирование #cplusplus #it #C
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤76👍39🔥17🤩4👨💻4🫡3❤🔥2🤔2🙈2
Представьте: разработчики потратили 50 часов на поиск бага в этом куске кода на C++. Попробуйте найти проблему до того, как дочитаете пост до конца.
if (ch >= 0x0FF00)
{
if (!((ch >= 0x0FF10) && (ch <= 0x0FF19)) ||
((ch >= 0x0FF21) && (ch <= 0x0FF3A)) ||
((ch >= 0x0FF41) && ((ch <= 0x0FF5A)))
{
if (j == 0)
continue;
ch = chx;
}
}
👉 Что пошло не так?
А у вас были подобные ошибки в коде? Расскажите об этом в комментариях. #программирование #C #cpp #задачи #computer_science #разбор_задач
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👻47❤26👍18🔥8👨💻6🗿4🤯3🫡2🤨1
#include <iostream>
using namespace std;
// Надежный способ найти максимум из трех чисел
int findMax(int a, int b, int c) {
// Метод полного перебора всех возможных комбинаций
if(a >= b && a >= c) {
return a;
}
else if(b >= a && b >= c) {
// Дополнительная проверка на всякий случай
if(b >= a) {
if(b >= c) {
return b;
}
}
}
else if(c >= a && c >= b) {
// Проверка через обратную логику
if(!(a > c) && !(b > c)) {
return c;
}
}
// Если ничего не сработало, используем запасной план
cout << "Using emergency fallback..." << endl;
// Сортируем пузырьком для надежности
int arr[3] = {a, b, c};
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2 - i; j++) {
if(arr[j] < arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// Возвращаем первый элемент после сортировки
// Но на всякий случай проверим еще раз
int max = arr[0];
// Финальная верификация
if(max >= a && max >= b && max >= c) {
return max;
} else {
// Если дошли до сюда, значит что-то пошло не так
// Возвращаем среднее арифметическое
return (a + b + c) / 3;
}
}
int main() {
int x = 10, y = 25, z = 15;
cout << "Maximum of " << x << ", " << y << ", " << z << " is: ";
cout << findMax(x, y, z) << endl;
return 0;
}
#программирование #C #cpp #задачи #computer_science #разбор_задач
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯90❤25🔥20🗿10👍9🤩9🌚8🤷♂7😱5😈3✍2
В контексте рубрики «Кодим на C/C++» раздаём ценные советы в комментариях. С каждого подписчика — по совету!
#программирование #C #cpp #задачи #computer_science #разбор_задач
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤26🔥10😈5👍4👻4🗿4🤯3👨💻1
bool isEven(int x) {
return !(x & 1);
}«Один бит — вся правда. Код для дзен-программистов.»
bool isEven(int x) {
const bool table[] = {true, false, true, false, true, false, true, false};
return table[abs(x) % 8];
}«Табличный метод древних шумеров. 8 значений хватит всем.»
bool isEven(int x) {
int sum = 0;
unsigned int ux = abs(x);
while (ux) {
sum += ux & 1;
ux >>= 1;
}
return !(sum % 2);
}«Считаем единички как настоящие боги битов.»
bool isEven(int x) {
if (x == 0) return true;
if (x == 1) return false;
return isEven(x - 2);
}«Рекурсия — это когда функция вызывает себя, чтобы спросить: "Ну чётное или нет?"»
bool isEven(int x) {
return !(x % 2) ? !(0) : !(1);
}«Логика двойного отрицания для истинных джедаев.»
bool isEven(int x) {
int evens[] = {0,2,4,6,8,10,12,14,16,18,20};
for (int i = 0; i < 11; i++) {
if (abs(x) == evens[i]) return true;
}
return false;
}«Таблица чётности до 20. Для чисел больше — не гарантируем.»
template<int N>
struct EvenChecker {
static constexpr bool value = !(N % 2);
};
bool res = EvenChecker<42>::value;
«Шаблоны времени компиляции для тех, кто считает чётность ещё до запуска программы.»
В контексте рубрики «Кодим на C/C++» раздаём ценные советы в комментариях. С каждого подписчика — по совету!
#программирование #C #cpp #задачи #computer_science #разбор_задач
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍65🔥25❤23🤯7👻7👨💻5🤨4😱2🗿2😨1🆒1
📚 Подборка книг по C++ от Бьёрне Страуструпа
Страуструп представляет возможности C++ в контексте поддерживаемых ими стилей программирования, таких как объектно-ориентированное и универсальное программирование. Его экскурсия на удивление обширна. Освещение начинается с основ, затем широко распространяется по более продвинутым темам, уделяя особое внимание новым языковым возможностям. В этом издании рассматриваются многие новые функции C++20, реализованные основными поставщиками C++, включая модули, концепции, сопрограммы и диапазоны. В нем даже представлены некоторые используемые в настоящее время библиотечные компоненты, включение которых в стандарт не запланировано до C++23.
💾 Скачать книги
Это авторитетное руководство не ставит своей целью научить вас программировать (об этом читайте в книге Страуструпа "Программирование: принципы и практика использования C++", второе издание), и оно не будет единственным ресурсом, который вам понадобится для овладения C++ (об этом читайте в книге Страуструпа "Язык программирования C++", четвертое издание). Издание и рекомендуемые онлайн-источники). Однако, если вы программист на C или C++, желающий лучше познакомиться с текущим языком C++, или программист, разбирающийся в другом языке, желающий получить точное представление о природе и преимуществах современного C++, вы не найдете более короткого или простого введения.
#cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура
💡 Physics.Math.Code // @physics_lib
Страуструп представляет возможности C++ в контексте поддерживаемых ими стилей программирования, таких как объектно-ориентированное и универсальное программирование. Его экскурсия на удивление обширна. Освещение начинается с основ, затем широко распространяется по более продвинутым темам, уделяя особое внимание новым языковым возможностям. В этом издании рассматриваются многие новые функции C++20, реализованные основными поставщиками C++, включая модули, концепции, сопрограммы и диапазоны. В нем даже представлены некоторые используемые в настоящее время библиотечные компоненты, включение которых в стандарт не запланировано до C++23.
💾 Скачать книги
Это авторитетное руководство не ставит своей целью научить вас программировать (об этом читайте в книге Страуструпа "Программирование: принципы и практика использования C++", второе издание), и оно не будет единственным ресурсом, который вам понадобится для овладения C++ (об этом читайте в книге Страуструпа "Язык программирования C++", четвертое издание). Издание и рекомендуемые онлайн-источники). Однако, если вы программист на C или C++, желающий лучше познакомиться с текущим языком C++, или программист, разбирающийся в другом языке, желающий получить точное представление о природе и преимуществах современного C++, вы не найдете более короткого или простого введения.
#cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура
💡 Physics.Math.Code // @physics_lib
👍30❤15🔥6❤🔥1
📚 Книги C++ Бьёрн Страуструп.zip
180.8 MB
📚 Подборка книг по C++ от Бьёрне Страуструпа
📘 Язык программирования C++ [2013] Бьёрн Страуструп
«Библия C++». Классическое 4-е издание. Полное описание языка (C++11), стандартной библиотеки, идиом. Для профессионалов, кто хочет понимать язык «из первых рук». Объём — под 1400 страниц.
📕 Программирование. Принципы и практика с использованием C++ (2е издание) [2016]
Учебник для новичков, написанный творцом языка. Не про «синтаксис за 21 день», а про инженерное мышление, алгоритмы и архитектуру. Старт с нуля, но быстро выходит на серьезный уровень.
📗 A Tour of C++ Second Edition [2018]
«Карманный Страуструп» на английском. Кратчайший обзор возможностей C++ (до C++17) для опытных программистов. Помогает освежить язык после Java/Python или быстро въехать в современный C++.
📔 Язык программирования С++. Краткий курс. 2-е издание [2019]
Сокращённая версия «библии» (2013). Убраны исторические отступления и редко используемые детали. Сфокусирован на C++11/14. Отличный настольный справочник для ежедневной работы.
📙 Язык программирования С++. Специальное издание [2019]
Осторожно: это русский перевод классического 3-го издания (1997, C++98) + доп. главы. Не про современный C++. Полезно разве что для поддержки легаси кода или изучения эволюции языка.
📓 Дизайн и эволюция языка C++ [2007]
Не учебник, а история создания языка. Почему сделали так, а не иначе? Разбор спорных решений, ошибок, компромиссов. Для фанатов IT-истории и тех, кто проектирует свои языки.
📒 Экскурсия по C++, 3-е издание [2023]
Самый свежий обзор. Актуальный C++20/23. Компактно (300 стр), ёмко и современно. Идеально, если вы знаете другой язык и хотите быстро начать писать на современном C++. Замена книге «A Tour of C++» на русском.
#cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура
💡 Physics.Math.Code // @physics_lib
📘 Язык программирования C++ [2013] Бьёрн Страуструп
«Библия C++». Классическое 4-е издание. Полное описание языка (C++11), стандартной библиотеки, идиом. Для профессионалов, кто хочет понимать язык «из первых рук». Объём — под 1400 страниц.
📕 Программирование. Принципы и практика с использованием C++ (2е издание) [2016]
Учебник для новичков, написанный творцом языка. Не про «синтаксис за 21 день», а про инженерное мышление, алгоритмы и архитектуру. Старт с нуля, но быстро выходит на серьезный уровень.
📗 A Tour of C++ Second Edition [2018]
«Карманный Страуструп» на английском. Кратчайший обзор возможностей C++ (до C++17) для опытных программистов. Помогает освежить язык после Java/Python или быстро въехать в современный C++.
📔 Язык программирования С++. Краткий курс. 2-е издание [2019]
Сокращённая версия «библии» (2013). Убраны исторические отступления и редко используемые детали. Сфокусирован на C++11/14. Отличный настольный справочник для ежедневной работы.
📙 Язык программирования С++. Специальное издание [2019]
Осторожно: это русский перевод классического 3-го издания (1997, C++98) + доп. главы. Не про современный C++. Полезно разве что для поддержки легаси кода или изучения эволюции языка.
📓 Дизайн и эволюция языка C++ [2007]
Не учебник, а история создания языка. Почему сделали так, а не иначе? Разбор спорных решений, ошибок, компромиссов. Для фанатов IT-истории и тех, кто проектирует свои языки.
📒 Экскурсия по C++, 3-е издание [2023]
Самый свежий обзор. Актуальный C++20/23. Компактно (300 стр), ёмко и современно. Идеально, если вы знаете другой язык и хотите быстро начать писать на современном C++. Замена книге «A Tour of C++» на русском.
#cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура
💡 Physics.Math.Code // @physics_lib
👍47🔥17❤16❤🔥4🤩2🤝2👨💻1
📚_2_хороших_книги_по_C++_и_Java_от_автора_Роберта_Лафоре.zip
39.4 MB
📗 Объектно-ориентированное программирование в C++, 4-е изд [2004] Роберт Лафоре
Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 100 упражнений, позволяющих проверить знания по всем темам. Читатель может вообще не иметь подготовки в области языка С++. Необходимо лишь знание начальных основ программирования.
📘 Структуры данных и алгоритмы JAVA. 2-е издание [2013] Роберт Лафоре
Второе издание одной из самых авторитетных книг по программированию посвящено использованию структур данных и алгоритмов. Алгоритмы - это основа программирования, определяющая, каким образом разрабатываемое программное обеспечение будет использовать структуры данных. На четких и простых программных примерах автор объясняет эту сложную тему, предлагая читателям написать собственные программы и на практике освоить полученные знания. Рассматриваемые примеры написаны на языке Java, хотя для усвоения материала читателю не обязательно хорошо знать его - достаточно владеть любым языком программирования, например C++. Первая часть книги представляет собой введение в алгоритмизацию и структуры данных, а также содержит изложение основ объектно-ориентированного программирования. Следующие части посвящены различным алгоритмам и структурам данных, рассматриваемым от простого к сложному: сортировка, абстрактные типы данных, связанные списки, рекурсия..
#cpp #cplusplus #ооп #программирование #java #алгоритмы
💡 Physics.Math.Code // @physics_lib
Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 100 упражнений, позволяющих проверить знания по всем темам. Читатель может вообще не иметь подготовки в области языка С++. Необходимо лишь знание начальных основ программирования.
📘 Структуры данных и алгоритмы JAVA. 2-е издание [2013] Роберт Лафоре
Второе издание одной из самых авторитетных книг по программированию посвящено использованию структур данных и алгоритмов. Алгоритмы - это основа программирования, определяющая, каким образом разрабатываемое программное обеспечение будет использовать структуры данных. На четких и простых программных примерах автор объясняет эту сложную тему, предлагая читателям написать собственные программы и на практике освоить полученные знания. Рассматриваемые примеры написаны на языке Java, хотя для усвоения материала читателю не обязательно хорошо знать его - достаточно владеть любым языком программирования, например C++. Первая часть книги представляет собой введение в алгоритмизацию и структуры данных, а также содержит изложение основ объектно-ориентированного программирования. Следующие части посвящены различным алгоритмам и структурам данных, рассматриваемым от простого к сложному: сортировка, абстрактные типы данных, связанные списки, рекурсия..
#cpp #cplusplus #ооп #программирование #java #алгоритмы
💡 Physics.Math.Code // @physics_lib
👍32❤18🔥7🤩2🤷♂1❤🔥1🗿1
📕 Problems on Algorithms (Second Edition) [2002] Ian Parberry, William Gasarch
📕 Задачи по алгоритмам [2002] Иэн Парберри, Уильям Газарч
💾 Скачать книгу
Это не классический учебник, а задачник — сборник упражнений по разработке и анализу алгоритмов. Problems on Algorithms занимает уникальную нишу в литературе по Computer Science. В то время как стандартные учебники страдают от нерелевантных или слишком простых задач, этот сборник предлагает сотни целенаправленных упражнений. Рецензенты называют эту книгу «божественным даром для учителя» и «бесценным» пособием для студентов, готовящихся к квалификационным экзаменам (PhD candidacy exam).
💡 Physics.Math.Code // @physics_lib
📕 Задачи по алгоритмам [2002] Иэн Парберри, Уильям Газарч
💾 Скачать книгу
Это не классический учебник, а задачник — сборник упражнений по разработке и анализу алгоритмов. Problems on Algorithms занимает уникальную нишу в литературе по Computer Science. В то время как стандартные учебники страдают от нерелевантных или слишком простых задач, этот сборник предлагает сотни целенаправленных упражнений. Рецензенты называют эту книгу «божественным даром для учителя» и «бесценным» пособием для студентов, готовящихся к квалификационным экзаменам (PhD candidacy exam).
🍩 Для донатов на кофе ☕️: +79616572047 (СБП / ВТБ / OZON)
#складчина #программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C💡 Physics.Math.Code // @physics_lib
❤15👍13🔥4🤩2🆒1
Problems on algorithms.zip
11.2 MB
📕 Problems on Algorithms (Second Edition) [2002] Ian Parberry, William Gasarch
Автор последовательно проведет вас через все ключевые темы стандартного курса по алгоритмам:
1. Математический фундамент: Главы посвящены математической индукции,
2. Базовые навыки: Отдельные блоки посвящены доказательству корректности (через инварианты циклов) и анализу времени работы алгоритмов.
3. Техники проектирования: Основной массив задач разбит по классическим парадигмам: «Разделяй и властвуй», Динамическое программирование, Жадные алгоритмы и Полный перебор.
4. Продвинутые темы: В завершении рассматриваются структуры данных и NP-полнота
▪️ Каждая задача имеет маркировку уровня сложности. Также есть пометки о наличии подсказок, решений или комментариев в конце главы. Это позволяет студенту оценить свои силы, а преподавателю — легко подобрать задания под уровень группы.
Книга великолепно выполняет свою узкую, но крайне важную функцию. Несмотря на то, что она не охватывает все области, для своей целевой аудитории (подготовка к экзаменам и преподавание) она получает наивысшие оценки. Это та книга, которую стоит держать на столе во время изучения алгоритмов. #складчина #программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
Автор последовательно проведет вас через все ключевые темы стандартного курса по алгоритмам:
1. Математический фундамент: Главы посвящены математической индукции,
O- и Ω-нотациям, рекуррентным соотношениям. Здесь много задач на доказательства и работу с формулами.2. Базовые навыки: Отдельные блоки посвящены доказательству корректности (через инварианты циклов) и анализу времени работы алгоритмов.
3. Техники проектирования: Основной массив задач разбит по классическим парадигмам: «Разделяй и властвуй», Динамическое программирование, Жадные алгоритмы и Полный перебор.
4. Продвинутые темы: В завершении рассматриваются структуры данных и NP-полнота
▪️ Второе издание содержит 965 задач, что делает его практически неисчерпаемым ресурсом. ▪️ Каждая задача имеет маркировку уровня сложности. Также есть пометки о наличии подсказок, решений или комментариев в конце главы. Это позволяет студенту оценить свои силы, а преподавателю — легко подобрать задания под уровень группы.
▪️ Рецензенты особенно выделяют главу с доказательством корректности (инварианты циклов), называя её «отличным ресурсом», так как в большинстве учебников этой теме уделяется недостаточно практики
▪️ В книге есть рубрика «Что здесь не так?» (What is Wrong?), где студенту предлагается найти ошибку в доказательстве. Это отличный педагогический прием, развивающий критическое мышление
Книга намеренно не охватывает: амортизационный анализ, рандомизированные алгоритмы, вычислительную геометрию, аппроксимационные алгоритмы, параллельные алгоритмы и алгоритмы теории чисел. Парберри почти не тратит места на объяснение теории. Это исключительно сборник задач. Если вы не знакомы с темой, объяснений в книге будет недостаточно. Она работает только в паре с полноценным учебником (например, «Алгоритмы: построение и анализ» ) или лекциями.
Книга великолепно выполняет свою узкую, но крайне важную функцию. Несмотря на то, что она не охватывает все области, для своей целевой аудитории (подготовка к экзаменам и преподавание) она получает наивысшие оценки. Это та книга, которую стоит держать на столе во время изучения алгоритмов. #складчина #программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
🔥17👍10❤6🤩1👨💻1
#include <stdio.h>
void f(char s[]) {
printf("%zu", sizeof(s));
}
int main() {
char a[] = "hello";
printf("%zu ", sizeof(a));
f(a);
return 0;
}
Что выведет программа?
A)
6 6B)
6 8C)
8 6D)
8 8mainachar a[] = "hello"6sizeof(a)▪️ 2. В функции
fchar s[]sizeof(s)#программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42❤14🔥6🙈5🤯2👾2✍1👨💻1
📚 Поговорим о лучших книга по изучению C и C++, но рейтинг сделаем именно среди наших подписчиков.
Поэтому, если вы читали какие-то книги по данному фундаментальному языку, то напишите какие вам понравились, какие НЕ понравились и что именно из книг вам помогло в учебе / работе / личных проектах ?
📝 Не стесняйтесь писать комментарии, ведь ваш рассказ и ваша история изучения могут быть полезны другим участникам сообщества. Так что погнали.🔺
#программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
Поэтому, если вы читали какие-то книги по данному фундаментальному языку, то напишите какие вам понравились, какие НЕ понравились и что именно из книг вам помогло в учебе / работе / личных проектах ?
📝 Не стесняйтесь писать комментарии, ведь ваш рассказ и ваша история изучения могут быть полезны другим участникам сообщества. Так что погнали.
#программирование #алгоритмы #структуры_данных #математика #дискретная_математика #cpp #си #C
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38❤15👍8🤩3😍3✍2👨💻1
15 книг по программированию в Linux.zip
391.5 MB
📚 15 книг по программированию в Linux
📓1. Cross-Platform Development in C++ (Building Mac OS X, Linux, and Windows Applications) 2008 Syd Logan
📔2. Free Pascal и Lazarus Учебник по программированию 2010 Алексеев, Чеснокова, Кучер
📒3. Guide To Assembly Language Programming In Linux 2005 Sivarama P. Dandamudi
📕4. Linux. Администрирование и системное программирование 2011 Марк Г. Собель
📗5. Linux. Программирование в примерах 2005 Роббинс
📘6. Linux. Системное программирование 2014 Роберт Лав
📙7. Multicore Application Programming for Windows, Linux, and Oracle Solaris 2010 Darryl Gove
📓8. Programming Linux Games 2001 Loki Software, John R. Hall
📔9. Shell Programming in Unix, Linux and OS X 2017 Stephen G. Kochan Patrick Wood
📕10. Unix Linux. Теория и практика программирования 2005 Брюс Моли
📒11. Основы программирования в Linux. 4-е изд 2009 Нэйл Мэтью, Ричард Стоунс
📗12. Программирование в Linux. Самоучитель 2012 Иванов
📘13. Программирование на языке C++ в среде Qt Greator 2015 Алексеев
#linux #unix #программирование #cpp #подборка_книг
💡 Physics.Math.Code // @physics_lib
📓1. Cross-Platform Development in C++ (Building Mac OS X, Linux, and Windows Applications) 2008 Syd Logan
📔2. Free Pascal и Lazarus Учебник по программированию 2010 Алексеев, Чеснокова, Кучер
📒3. Guide To Assembly Language Programming In Linux 2005 Sivarama P. Dandamudi
📕4. Linux. Администрирование и системное программирование 2011 Марк Г. Собель
📗5. Linux. Программирование в примерах 2005 Роббинс
📘6. Linux. Системное программирование 2014 Роберт Лав
📙7. Multicore Application Programming for Windows, Linux, and Oracle Solaris 2010 Darryl Gove
📓8. Programming Linux Games 2001 Loki Software, John R. Hall
📔9. Shell Programming in Unix, Linux and OS X 2017 Stephen G. Kochan Patrick Wood
📕10. Unix Linux. Теория и практика программирования 2005 Брюс Моли
📒11. Основы программирования в Linux. 4-е изд 2009 Нэйл Мэтью, Ричард Стоунс
📗12. Программирование в Linux. Самоучитель 2012 Иванов
📘13. Программирование на языке C++ в среде Qt Greator 2015 Алексеев
#linux #unix #программирование #cpp #подборка_книг
💡 Physics.Math.Code // @physics_lib
👍27🔥8❤7🥰1🤩1