![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
深藏的是波光粼粼
I did it my way
展开
-
排序算法【7】--堆排序
堆排序 堆排序在排序算法中可以说是比较复杂的一种方法,但是在很多特殊场合的运用特别广泛,比如一亿个数据中取得前十个最大的数,用大堆排序就非常快。 1.算法思想 (1)首先要创建一个堆,并且向上调整成大根堆。 (2)因为大根堆的第一个节点肯定是最大的,将第一个节点和最后一个节点交换,那么最后一个节点就有序了。 (3)再将除了最后一个节点以外的节点重新进行向上调整成大根堆,将第一个节点和最后一个节...原创 2019-08-25 00:02:12 · 153 阅读 · 0 评论 -
排序算法【6】--归并排序的非递归
归并排序非递归算法 1、算法思想 相比于递归的算法,个人觉得非递归更容易理解一些,相比较于递归排序算法需要递归成单个元素然后再合并,非递归直接将他们看成单个元素,分组合并,通过控制每一轮的分组个数来进行归并排序,每次gap的值二倍递增来进行排序,直达gap=array.length表示全部归并完毕,也全部排序完成啦~ 2、图解 说的比较ran,大家可以看一下图解 3.实现 //归并排序的非递...原创 2019-08-22 01:27:39 · 325 阅读 · 0 评论 -
数据结构这些面试题必须会系列----二叉树基础面试题【1】
二叉树基础面试题(1) 数据结构部分看过一些面经觉得考的比较多的是排序,接着就是链表和二叉树部分了,今天联系了二叉树部分的一些面试题,就写写笔记啦~ 1.二叉树的前序、中序、后续遍历 /** * Created with IntelliJ IDEA * * @Description: * @Author: zhen * @Date: 2019/8/24 * @Time: 11:49...原创 2019-08-27 00:53:04 · 390 阅读 · 0 评论 -
数据结构这些面试题必须会系列----二叉树基础面试题【2】
二叉树基础面试题【2】 今天写了几个难度升级的题,赶脚到有点点头tu了,也总结的一丢丢写二叉树的经验,下面会写到~ 1.非递归先序遍历二叉树 1>算法思想: 非递归一般都会用栈来解决问题。 (1)首先创建一个栈,定义一个cur从root节点开始遍历 (2)如果cur不为空则将遍历过得cur入栈并打印,然后使cur一直遍历左孩子。 (3)如果cur为空并且栈不为空,则将栈顶元素出栈,并开始...原创 2019-08-28 21:50:39 · 159 阅读 · 0 评论 -
数据结构这些面试题必须会系列----二叉树进阶面试题【3】
二叉树进阶面试题【3】 前两天有做了几道比较难的二叉树面试题,个人觉得比较锻炼脑子hhh。 1 .给定一个二叉树, 找到该树中两个指定节点的最近公共祖先 1>算法思想 (1)首先考虑特殊情况,如果根节点root为空,则没有祖先可言,返回null。 (2)再考虑如果两个指定节点中有一个是root,那么他们的公共祖先一定是root。 (3)再考虑一般情况 如果两个节点一个在左子树,一个在右子树...原创 2019-09-01 00:15:52 · 165 阅读 · 0 评论