algodata

所在平台: Udemy

课程主页: https://www.udemy.com/course/algodata/

课程评论:没有评论

第一个写评论        关注课程

课程简介

coursera 课程“algodate” 是一门关于算法和数据结构的综合课程。本课程旨在为学员提供编程基础知识,并帮助他们为在优秀科技公司工作做好准备,因为算法和数据结构是技术面试中的关键要求。 课程强调理解算法和数据结构的重要性,尤其是在面对真正的问题时,比如需要选择合适的数据结构或定制现有算法。缺乏这些基本知识可能会导致在解决性能问题或通过技术面试时遇到困难。课程指出,仅仅依靠更强大的硬件并非总是最佳解决方案,特别是在资源受限的环境中。 本课程的特点包括: * **广泛的主题覆盖**:涵盖数据结构、抽象数据类型、算法定义及其重要性。 * **深入的分析**:讲解算法分析,包括时间复杂度(Big-O 符号)、空间复杂度以及如何构建对数-对数图。 * **具体的数据结构和算法**: * **数组**:在 C# 中的实现,内存表示以及数组操作的复杂度。 * **排序算法**:包括冒泡排序、选择排序、插入排序、递归、希尔排序、归并排序、快速排序及其稳定性。 * **列表**:包括 BCL 中的 `List`、节点、单向链表、双向链表和 BCL 中的 `LinkedList`。 * **栈**:理论和实践,基于数组、链表以及 BCL 中的实现。 * **队列**:理论和实践,基于数组、循环缓冲区、链表以及 BCL 中的实现。 * **搜索算法**:线性搜索和二分搜索。 * **符号表**:介绍、API、顺序查找表、二分查找表。 * **哈希表**:介绍、哈希函数、`GetHashCode`、冲突解决方法(链地址法和线性探测法)、BCL 中的 `Dictionary` 和集合类型。 * **树**:二叉搜索树的实现(未来将扩展)。 * **堆**:介绍、堆与数组的关系、堆排序。 * **其他算法**:如埃拉托色尼筛法,未来将不断扩展。 * **实际的编程实践**:课程提供实际的编程示例,代码主要使用 C# 编写,但由于 C# 和 Java 语法的相似性,99% 的内容对 Java 程序员也同样适用。课程包含家庭作业和解决方案。 * **专业开发者的视角**:课程由一位拥有丰富实际经验的专业开发人员创建,并涵盖了 .NET 基础类库(BCL)中内置的数据结构和算法的内部工作原理。 该课程鼓励学员加入,并强调 Udemy 的 30 天退款保证,降低了学员的学习风险。

课程评论(0条)

课程详情

В этом курсе мы пройдём основные алгоритмы и структуры данных. Примеры кода написаны на C#, однако 99% материала будет ясно любому Java-программисту, поскольку синтаксис языков очень схож, а примеры кода алгоритмов и структур данных так вообще будут почти полностью совпадать и в C# и в Java. В курсе есть лишь несколько лекций посвящённых исключительно библиотекам C#.Зачем изучать алгоритмы и структуры данных?Алгоритмы и структуры данных составляют основы программирования.Понимание алгоритмов и структур данных - одно из самых важныхтребований для устройства на работу в хорошие компании.Вам придётся решать множество задач на собеседованиях связанных с алгоритмами и структурами данных. Действительно, вы, конечно, сможете прожить и без понимания алгоритмов и структур данных. Однако, вы сможете так спокойно жить до тех пор, пока вы не встретитесь с реальной проблемой, решение которой потребует грамотного выбора подходящей структуры данных или потребует кастомизации известных алгоритмов. Если вы никогда не сталкивались с подобными проблемами, то, поверьте, это всего лишь вопрос времени. Однажды, вы столкнётесь с такой проблемой и при отсутствии глубокого понимания структур данных и алгоритмов, вы почувствуете себя опозоренным и беспомощным. Вы застрянете.Слабость понимания алгоритмов и структур данных сильно понижает ваши шансы пройти собеседование в хорошую компанию.Почти все компании предпочитают нанимать разработчиков, хорошо разбирающихся в алгоритмах и структурах данных. Запомните это. Не откладывайте изучение фундаментальных концепций.Более мощное «железо» - не всегда хорошее/доступное решение проблем связанных с производительностью. Иногда, возникает необходимость разрабатывать программы для очень низко производительных устройств. Использование какого-либо железа зачастую так же зависит от бюджета заказчика, поэтому далеко не всегда выбор железа диктуется разработчиком.Понимание того, что происходит «под капотом» весьма желательно. Хотя бы на один уровень в глубину. Действительно, если вы не понимаете как устроен список, иногда вы будете принимать не оптимальные или вообще неверные решения.Почему этот курс?Вы можете меня спросить «почему я должен взять именно ваш курс»? И вот мой ответ:этот курс покрывает множество темя старался сделать этот курс не слишком сухимкурс посвящён не только алгоритмам и структурам данных, но также освящает внутреннее устройство структур данных и алгоритмов встроенных в основную библиотеку классов.NET (библиотека классов в.NET Core в плане структур данных и алгоритмов устроена точно так же)курс практический с домашними заданиями и решениямикурс поможет вам пройти технические собеседованиякурс сделан профессиональным разработчиком с большим реальным опытоми множество др. причин:)Что внутри курса?На данный момент курс покрывает следующие темы:Введение в алгоритмы и структуры данных: структура данных, абстрактный тип данных,разница между этими понятиями. Что такое алгоритм и почему всё это для нас важно?Введение в анализ алгоритмов: сколько времени займёт исполнение программы,построение log-log графика, аппроксимации, порядок роста сложности (Big-O нотация), потребление памятиМассивы: массивы в C#, массивы в памяти, сложность операций на массивахАлгоритмы сортировки: пузырьковая, выборкой, вставками, рекурсия, Шелл-сортировка, слиянием, быстрая, стабильность алгоритмов сортировкиСписки: List встроенный в BCL, узлы (ноды), связный список (односвязный, двусвязный),LinkedList встроенный в BCLСтек: теория и практика, на массиве, на связном списке, встроенный в BCLОчереди: теория и практика, на массиве, кольцевой буфер,на связном списке, встроенная в BCLАлгоритмы поиска: линейный, бинарныйСимвольные таблицы: введение, API, таблицы на последовательном поиске,таблица на бинарном поискеХеш-таблицы: введение, хеширование, GetHashCode, подходы к разрешению коллизий: раздельные цепочки и линейное пробирование, тип Dictionary встроенный в BCL, типы представляющие множества встроенные в BCLДеревья: двоичное дерево поиска и его реализация (больше будет добавлено в будущем)Пирамиды: введение, пирамиды и массивы, пирамидальная сортировкаРазличные алгоритмы: эта секция будет расширяться, а пока покрывает алгоритм «решето Эратосфена»Зачисляйтесь на курс и вы не пожалеете! Не забывайте, что Udemy даёт 30 дней на возврат денежных средств, так что даже если вам курс не понравится - вы ничем не рискуете, всегда можно вернуть деньги парой кликов.

课程标签

0人关注该课程

主题相关的课程