Algorithms and Data Structures in C#: Complete Tutorial

所在平台: Udemy

课程主页: https://www.udemy.com/course/algorithms-data-structures-csharp/

课程评论:没有评论

第一个写评论        关注课程

课程简介

**Coursera 课程:C# 中的算法与数据结构:完整教程** 本课程旨在帮助学习者深入理解算法与数据结构的基础知识,这对于成为一名优秀的程序员至关重要,尤其是在技术面试中。课程由一位拥有十年以上实战经验的专业软件开发人员讲授。 **核心内容:** * **基础概念:** 介绍数据结构、抽象数据类型及其区别,以及算法的重要性和价值。 * **算法分析:** 学习如何评估程序运行时间(Big-O 符号)、内存消耗,并理解对数-对数图和渐进表示法。 * **数据结构详解:** * **数组:** C# 中的数组、内存表示及操作的时间复杂度。 * **排序算法:** 涵盖冒泡排序、选择排序、插入排序、递归、希尔排序、归并排序、快速排序,并探讨稳定性。 * **列表:** .NET BCL 内置 List 的特性,节点概念,以及单向和双向链表(包括 .NET 内置实现)。 * **栈:** 理论与实践,基于数组和链表的栈实现,以及 .NET 内置栈。 * **队列:** 理论与实践,基于数组的队列、循环队列、基于链表的队列,以及 .NET BCL 内置队列。 * **查找算法:** 线性查找、二分查找(未来将有更多内容)。 * **符号表:** 介绍、API、基于顺序查找和二分查找的实现。 * **哈希表:** 介绍、哈希函数、`GetHashCode` 方法、冲突解决策略(分离链接法和线性探测法),以及 .NET 内置 Dictionary 和 Set。 * **树:** 二叉搜索树 (BST) 及其实现(未来将有更多内容)。 * **堆:** 介绍、堆与数组的关系、实现以及堆排序(未来将有优先级队列的内容)。 * **不可变集合:** 不可变性及其对内存的影响,不可变栈、队列、列表、集合、字典,以及 Builder 模式。 * **不同算法:** 包含 Eratosthenes 筛法等示例。 **课程特色:** * **全面性:** 涵盖大量主题,深入剖析 .NET BCL 中内置数据结构和算法的内部工作原理。 * **实用性:** 配备练习题和解决方案,帮助学习者巩固知识。 * **面试导向:** 课程内容有助于通过技术面试。 * **易于理解:** 讲师力求使课程内容生动有趣,避免枯燥。 **学习价值:** 本课程将帮助您解决现实编程问题,做出更优化的技术决策,并在技术面试中脱颖而出。Udemy 提供 30 天退款保证,让您无忧学习。

课程评论(0条)

课程详情

Why learn about data structures and algorithms? Algorithms and data structures constitute the fundamentals of programming.Good understanding of algorithms and data structures is one of the most important requirements for a great number of work positions. You'll have to solve many problems related to algorithms and data structures at coding interviews. Indeed, you can live without an understanding of algorithms and data structures, in general. However, you can do that until you face a real problem which requires to choose right data structures and implement custom algorithms. If you haven't ever faced such problems, believe me, this is just a matter of time. One day, you'll face such a problem and if you don't understand algorithms and data structures in depth, you'll feel yourself ashamed and helpless. You'll be stuck.If you're not good at algorithms and data structures, you'll never pass a coding interview in a decent company. Almost all the companies prefer to hire those developers who have good understanding of algorithms and data structures, remember that. Do not delay the study of fundamental concepts.Better hardware is not a solution for all the performance-related problems. Sometimes, you need to write software for very slow devices. And that very often depends on the budget of a customer, by the way, so you don't have a control over it.You'd better to understand what's going on under the hood at least one level in-depth. Indeed, if you don't understand how List works, sometimes you'll make sub-optimal or completely wrong decisions.Why this course?You may ask me "why should I take exactly your course?" And here is my answer:This course is a comprehensive tutorial which covers a great number of topicsI tried to do my best to make this course not dryThis course concentrates not only at algorithms and data structures in general but it uncovers the internals of data structures and algorithms built-in.NET BCL (.NET Core's BCL is the same regarding fundamental data structures and algorithms)This course is practical with exercises and solutionsThis course will definitely help you to pass technical interviewsThis course is made by a professional software developer with more than 10 years of real-world experienceand many other reasons:)What's in the Course?For now, the course covers:Introduction to Algorithms and Data Structures: what is a data structure, abstract data type and what's the difference between these notions. What is an algorithm and why they are important to us?Introduction to Algorithm Analysis: determine how long will a program work, build a log-log plot, approximations, order of growth (Big-O notation), memory consumptionArrays: arrays in C#, arrays in memory, time complexity of operations on arraysSort Algorithms: bubble sort, selection sort, insertion sort, recursion, shell sort, merge sort, quick sort, stability of sort algorithmsLists: List built-in.NET BCL, nodes, linked list including singly and doubly linked lists, linked list built-in.NETStacks: theory and practice; stack based on array, stack based on a linked list, stack built-in.NETQueues: theory and practice; queue based on array, circular queue, queue based on linked list, queue built-in.NET BCLSearch Algorithms: linear search, binary search (more will be added in the future)Symbol Tables: intro, API, sequential search-based, binary search-basedHash Tables: intro, hash functions, GetHashCode, approaches to collisions resolving: separate chaining and linear probing, Dictionary built-in BCL, Sets in BCLTrees: binary search tree (BST), implementing BST (more will be added in the future)Heaps: intro, heaps and arrays, implementation, Heap Sort (more will be added in the future, specifically about Priority Queues)Immutable Collections: immutability and memory pressure, immutable stacks and queues, immutable list, immutable sets, immutable dictionaries, builders in immutable collectionsDifferent Algorithms. This section will include different algorithms as you might guess. For now it convers the Sieve of Eratosthenes.Take this course now and you'll be satisfied! Don't forget that Udemy provides 30-day money back refund policy, so if you don't like the course, you just click on a couple of buttons and get your money back!

课程标签

0人关注该课程

主题相关的课程