算法
六月·飞雪
这个作者很懒,什么都没留下…
展开
-
算法大合集
数据结构+算法(第03篇)KO!大O--时间复杂度原创 2022-12-09 00:14:23 · 427 阅读 · 0 评论 -
二叉树遍历的非递归写法
这个相对来说比较简单,就是一层一层遍历,核心点是采用队列,queue直接上代码 接下来是深度优先遍历,深度优先遍历分为三种,先序遍历,中序遍历,后续遍历 而深度优先遍历,核心点是采用栈直接上代码,投机取巧的写法 标准写法 然后是中序遍历,中序遍历没有投机取巧的方法,只有一种标准写法 后序遍历,也有两种写法,一种投机取巧,一种标准写法投机取巧的方式,代码如下 标准写法 总结:广度优先遍历比较简单,深度优先遍历,先序与中序标准写法是相同的代码结构,只需要一个指针,后续则不一样,需要记录原创 2022-12-04 14:37:58 · 387 阅读 · 0 评论 -
堆排序与快速排序的奥妙
堆排序 堆排序的核心思想是构建大(小)顶堆,然后与末尾元素交换值,并且,堆大小减一; 这里面的重点是如何构建大(小)顶堆,这是最核心的部分,其实总结起来也很简单,首先明白大(小)顶堆的定义,每个子树的根节点,都必须大于(小于)等于子节点,所以大顶堆的根节点,就是整个堆的最大值,小顶堆的根节点就是整个堆的最小值; 其构建的核心步骤是,从最末尾非叶子节点开始构建堆,为什么要从最末尾非叶子节点开始,因为如果直接从其他节点开始,构建的话,无法保证所有的子树都符合堆的定义,就会有遗漏,交换值之后的子节点也只会比原创 2021-09-04 13:06:03 · 231 阅读 · 0 评论 -
算法的时间复杂度与空间复杂度
每一个算法都有一个时间复杂度与空间复杂度,在算法中采用渐进符号表示O() 时间复杂度中经常用到的有o(1), o(n), o(logn), o(nlogn) (这里的logn表示的是以2为低的,在算法中通常省略这个2) O后面的括号中有一个函数,指明某个算法的耗时与数据增长量之间的关系。其中的n代表输入数据的量。 O(n):代表数据量增大几倍,耗时也增大几倍。比如常见的遍历算法。 O(logn...原创 2020-03-21 14:43:58 · 538 阅读 · 0 评论 -
十种排序算法总结(java版)
十种常见的排序算法总结(java版) 排序是程序开发中非常常见的操作,对一组任意的数据元素经过排序操作后,就可以把他们变成一组一定规则排序的有序序列。排序...原创 2020-03-01 00:00:32 · 233 阅读 · 0 评论