
算法与数据结构全阶班-左程云版
文章平均质量分 85
东哥说AI
AI超级个体:专注AI智能体、AI编程、大模型部署定制、RPA等前沿技术应用。
分享AI玩法、变现思路。
关注东哥不迷路,创富路上大踏步。
展开
-
算法与数据结构全阶班-左程云版(二)基础阶段之4.堆和比较器
本文主要介绍了堆和比较器:堆结构就是用数组实现的完全二叉树结构,每棵子树的最大值都在顶部是大根堆,每棵子树的最小值都在顶部是小根堆,有heapInsert与heapify操作,时间复杂度分别为O(N*logN)和O(N),堆排序实现了O(N*LogN)的时间复杂度,同时空间复杂度O(1),优先队列的底层就是堆;比较器的实质是重载比较运算符,可以很好的应用在特殊标准的排序上,也可以应用在特殊标准排序的结构上,手写堆结构,因为增加了对象的位置表,所以能够满足动态改信息的需求,可以自己实现堆和对应的比较器。原创 2022-02-23 15:29:34 · 558 阅读 · 0 评论 -
算法与数据结构全阶班-左程云版(二)基础阶段之3.归并排序和快速排序
本文介绍了2种排序方式:归并排序,思路是整体为递归,左边排好序+右边排好序+ merge让整体有序,也可以用非递归实现,时间复杂度为O(N*logN),额外空间复杂度为O(N),相比于冒泡排序、选择排序和插入排序O(N2)的时间复杂度,归并排序的时间复杂度优化了很多,这是因为减少了比较次数,有很多应用,例如求小和、逆序对等,只要数组中左边的数比右边的数满足某个条件即可进行操作;快速排序有3种方式,普通分区算法,荷兰国旗算法,随机选数与最后一个数交换,再利用荷兰国旗算法,时间复杂度为O(N*logN)。原创 2022-02-21 21:59:05 · 1257 阅读 · 1 评论 -
算法与数据结构全阶班-左程云版(二)基础阶段之2.链表、栈、队列、递归行为、哈希表和有序表
本文主要介绍了常用的数据结构:链表分为单链表和双向链表,可以实现反转单链表和双链表和删除给定值;栈数据先进后出,队列数据先进先出,队列和栈既可以使用双端队列实现,也可以使用数组实现,数组实现栈较简单,实现队列需要使用循环数组,可以实现返回栈中最小元素的栈,并且为常数时间复杂度,还可以用两个队列实现栈,或者用两个栈实现队列;递归的思想是将一个大的任务分解成小的任务,最后经过整合得到整个问题的解,可以使用Master公式计算出递归的时间复杂度;哈希表时间复杂度为O(1),有序表时间复杂度为O(logN)。原创 2022-02-18 21:28:56 · 733 阅读 · 0 评论 -
算法与数据结构全阶班-左程云版(二)基础阶段之1.复杂度、对数器、二分法和异或运算
本文主要介绍了复杂度、对数器、二分法和异或运算:评价算法优劣的核心指标包括时间复杂度(流程决定)、额外空间复杂度(流程决定)和常数项时间(实现细节决定);确定算法流程的时间复杂度时,当完成了表达式的建立,只需要保留最高阶项,复杂度是衡量算法流程的复杂程度的一种指标;对数器是检验算法实现正确性的有力工具,可以覆盖几乎所有情况的测试用例,无死角实现对算法的验证;只要构建出能够排除另外一端的逻辑,就可以使用二分,而不一定需要保证数组有序;异或运算可以简记成无进位相加,可以在算法中实现特定功能、加快运算效率。原创 2022-02-18 11:55:57 · 1029 阅读 · 0 评论 -
算法与数据结构全阶班-左程云版系列目录
左程云俗称左神,是一个刷题7年的算法爱好者,也是马士兵教育的算法授课老师。2014年起专职做程序员算法和数据结构培训、代码面试培训、刷题交流等相关工作,是《程序员代码面试指南–IT名企算法与数据结构题目最优解》的作者。《算法与数据结构全阶班》包括5个系列,分别是算法和数据结构新手班、算法与数据结构基础班、算法数据结构体系学习班、算法与数据结构进阶班和大厂算法和数据结构刷题班,本系列汇总了全阶班的全部题目和解答,同时还穿插了算法与数据结构的笔试和面试技巧,用最通俗易懂的语言争取让每个人都能轻松学懂算法。原创 2022-02-17 21:52:39 · 2405 阅读 · 3 评论