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