![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
来碗拿铁️
这个作者很懒,什么都没留下…
展开
-
算法导论的C实现——画出d叉树
算法导论的C实现——画出d叉树 前几天写了一个画出二叉树的函数:算法导论的C实现——画出二叉树。 章后有一道题是有关d叉树的,记得后面几章也会有用到d叉树的地方,就把画二叉树的函数稍改了下,现在可以画出d叉树。 d叉树空格的计算原理和二叉树很相近,比如现在有一棵高度为heightheightheight的d叉树。当nnn从树根向树叶递增时,可以算出第nnn行两个节点之间的空格的数目: n=heig...原创 2019-05-02 21:21:08 · 299 阅读 · 0 评论 -
算法导论的C实现——分治法求最大子数组
算法导论的C++实现——分治法求最大子数组 最近打算开启新篇,仔细啃一下算法导论这本书,为以后读博打下一点基础。希望能够尽可能实现书中伪代码与历程,并且希望自己能够坚持到最后。 //main.cpp #include <stdio.h> #include <stdint-gcc.h> #include <math.h> #include "partition....原创 2019-04-28 23:19:20 · 586 阅读 · 0 评论 -
算法导论的C实现——堆排序
算法导论的C实现——堆排序 堆最大堆维护最大堆原理代码实现结构体定义交换函数MAX_HEAPIFY测试建堆原理代码实现测试排序原理代码实现测试 堆 同二叉树一样,二叉堆并不是什么具有独特结构的新的数据结构。要记住的是心中有堆–二叉堆数据存放时本质还是一个数组,不过从另一个角度来看的话,它是一个近似的二叉完全树,树中的每一个节点对应数组中的一个元素。下图就是堆的最显然的解释。 最大堆 在定义最大堆...原创 2019-05-08 11:29:39 · 278 阅读 · 0 评论 -
算法导论的C实现——画出二叉树
算法导论的C++实现——画出二叉树树的高度元素间隔 最近在复现算法导论第二部分的内容,一上来就是和二叉树相关的堆排序(heapsort)算法。我的导师和我说过二叉树是人类想象出来的东西,只是心中有树。在做这些算法的时候不能直接观察到二叉树是一件很郁闷的事。。。实际上网上已有很多类似的画法,如使用linux工具,或者使用其他比较复杂的库。但是算法导论书中往往用一个数组作为二叉树的容器,上述工具就会显...原创 2019-04-30 14:49:39 · 1308 阅读 · 0 评论 -
算法导论的C实现——优先队列
算法导论的C实现——优先队列MAXIMUM原理代码实现EXTRACT-MAXINCREASEINSERTDELETE 堆排序的平均效率虽然小于快排,但是堆排序仍然有很多应用。堆排序的典型应用就是作为作业的调度系统,系统运行过程中可以随时INSERT一个新的任务。linux内核中的sort函数也是用的堆排序: 作者:知乎用户 链接:https://www.zhihu.com/question/208...原创 2019-05-09 00:33:45 · 237 阅读 · 0 评论