![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
文章平均质量分 92
Alivorth
好耶~
展开
-
【算法导论学习】最小生成树(Kruskal&Prim)
最小生成树什么是最小生成树求法Kruskal算法简述图例伪代码C语言代码时间复杂度分析Prim算法简述图例伪代码C语言代码时间复杂度分析完整代码什么是最小生成树在一个无向图中,连接每两个不同顶点的每一条边都有一个长度,叫做权,最小生成树就是在这个图中找到一棵树,这棵树可以把每一个点连接起来,同时保证权和是所有生成树中最小的。讲的专业点就是这样:求法计算最小生成树的办法最经典的有两个,K...原创 2020-04-29 15:58:51 · 1571 阅读 · 0 评论 -
【算法导论学习】快速排序
快速排序快速排序的基本理念具体实现方法递归分治数组分割伪代码C语言代码快速排序的基本理念快速排序本质上还是分治法来进行排序,所以还是参考这个前面提到的分析方法。所以快速排序可以分为三个部分:具体实现选一个数,把比他小的放前面,比他大的放后边,然后通过递归不断缩小范围,直到全部排序好。方法主要分为两个板块:递归分治数组分割其中递归分治中就用到了数组分割递归分治很好理解,...原创 2020-04-16 13:30:26 · 305 阅读 · 0 评论 -
【算法导论学习】堆排序+优先队列
堆排序堆啥玩意是堆啊堆又有什么性质呢代码部分核心:维护堆的性质堆的应用堆排序构建堆堆排序优先队列MAXIMUMEXTRACT-MAXINCREASE-KEYINSERT全部的完整代码堆长得像树的数组啥玩意是堆啊堆,其实就是一个数组,按一定的规律排列其中的元素。他虽然是数组,但是可以看成一个完全树。以二叉堆(这也是用的最多的堆)为例,按图形展示他就长这样:在一个完整的大堆中,所有的...原创 2020-04-08 14:20:07 · 232 阅读 · 2 评论 -
【算法导论学习】分治法求最大子数组
最大子数组分治法问题分析方向对时间复杂度的分析样例分析问题分析分解问题解决问题合并问题对代码的设想中间部分的处理递归部分完整代码分治法所谓分治法,就是把问题不断分割变小,常见的是把数组分割为两部分,然后分别计算,将大问题变成小问题。问题分析方向这一类问题主要用的是递归的方法,所以时间复杂度普遍为O(nlogn)对时间复杂度的分析样例分析接下来分析最大子数组问题问题分析分解问题...原创 2020-04-06 21:32:59 · 5810 阅读 · 2 评论