Algorithms and Data Structures in C#: Complete Tutorial
C#中的算法与数据结构:完整教程
Learn data structures and algorithms in C# from A to Z. Pass coding interview. Learn unit testing and TDD in addition.
从A到Z全面学习C#中的数据结构和算法。通过编码面试。同时掌握单元测试和TDD(测试驱动开发)。
教程演示🔗
学生数量:14,297 个学生
上次更新时间:2020年7月
教程评分:4.3
教程语言:英语
教程字幕:中文、英语字幕
本课程包括:6 篇文章、在移动设备和电视上观看、完整的永久访问权、15.5 小时 长的随选视频、结业证书字幕
学习内容
1、实现所有常见的数据结构,如列表(List)、栈(Stack)、队列(Queue)等,理解它们在底层是如何工作的。
2、正确地使用.NET内置的数据结构:选择合适的数据结构,并理解它们在底层是如何工作的。
3、通过那些面试官通过要求实现不同的算法和数据结构来折磨你的编程面试。
4、解决与算法和数据结构相关的定制问题,这样你就能将数据结构结合起来,并根据具体情况进行算法的再实现。
5、实现二叉搜索树
6、理解并应用哈希表
7、理解并应用符号表
8、理解并应用堆数据结构
要求
1、源代码
2、加入.NET学生社区
3、一些C#或Java的经验。
4、工具:Visual Studio(社区版)的免费版本
课程介绍
为什么学习数据结构和算法?
算法和数据结构是编程的基础。
深入理解算法和数据结构是众多职位的重要要求。在编程面试中,你需要解决许多与算法和数据结构相关的问题。通常来说,你可以在不了解算法和数据结构的情况下生活。但请记住,这只是暂时的。总有一天,你会遇到需要选择合适的数据结构并实现自定义算法的实际问题。如果你从未面对过这样的问题,相信我,这只是时间问题。当你遇到时,如果没有深入理解,你会感到尴尬和无助,可能会陷入困境。
在体面的公司,如果你不擅长算法和数据结构,你将无法通过技术面试。几乎所有的公司都更倾向于雇佣对算法和数据结构有良好理解的开发人员,请牢记这一点。不要推迟学习基础知识。
更好的硬件并不能解决所有性能问题。有时,你需要为运行速度极慢的设备编写软件,而这往往取决于客户预算,你可能无法控制。
至少深入理解底层原理是更好的选择。确实,如果你不了解列表的工作原理,有时会做出低效或完全错误的决策。
为什么选择这门课程?
你可能会问:“我为什么要选你的课程?”以下是答案:
这是一份全面的教程,涵盖了大量主题。
我尽力使课程生动有趣,避免枯燥无味。
课程不仅关注一般意义上的算法和数据结构,还揭示了.NET BCL(.NET Core的BCL在基础数据结构和算法上是相同的)内置数据结构和算法的内部工作原理。
课程包含实践练习和解决方案,有助于提升技能。
课程肯定能帮助你通过技术面试。
我是一位拥有超过10年实际工作经验的专业软件开发者制作的课程。
还有许多其他原因,欢迎尝试!
课程内容概览:
目前,课程包括:
1. 算法和数据结构入门:介绍数据结构、抽象数据类型,以及这些概念的区别。讲解算法的重要性。
2. 算法分析入门:理解程序运行时间,构建对数对数图,近似计算,增长率(大O符号),内存消耗。
3. 数组:C#中的数组,内存中的数组,操作数组的时间复杂度。
4. 排序算法:冒泡排序、选择排序、插入排序、递归、希尔排序、归并排序、快速排序,以及排序算法的稳定性。
5. 列表:.NET BCL内置的列表,节点,单链表和双链表,.NET中的链表实现。
6. 栈:理论和实践,基于数组和链表的栈,.NET内置栈。
7. 队列:理论和实践,基于数组和链表的队列,.NET BCL内置队列。
8. 搜索算法:线性搜索、二分搜索(未来会添加更多)。
9. 符号表:简介、API,基于顺序搜索和二分搜索的实现。
10. 哈希表:介绍、哈希函数,GetHashCode,解决冲突的方法(单独链接和线性探测),.NET BCL中的字典和集合。
11. 树:二叉搜索树(BST),BST实现(未来会添加更多)。
12. 堆:介绍、堆和数组,实现,堆排序(未来会添加更多,特别关于优先队列)。
13. 不变集合:不可变性和内存压力,不变栈和队列,不可变列表、集合和字典,不变集合中的构建器。
14. 不同算法:这个部分会包含各种算法,目前包括埃拉托斯特尼筛法。
掌握数据结构与算法是编程基石,提升编程面试竞争力。这门全面教程以.NET BCL为例,深入浅出讲解,涉及排序、列表、栈、队列、搜索、哈希表、树、堆等核心概念,实战练习助你实战应用。无论你是求职者还是专业开发者,都能从中获益,通过技术面试不再是难题。