随笔分类 -  算法与数据结构

摘要:leetcode刷题需要经常用的二叉树,发现二叉树这种可以无限扩展知识点来虐别人的数据结构,很受面试官的青睐,这里记录一下Java定义二叉树和遍历。 一、什么是二叉树 1 .二叉树的性质 本身是有序树,树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 2 图 1 二叉树示意图 二叉树具有以 阅读全文
posted @ 2021-03-26 16:33 霞光里 阅读(942) 评论(0) 推荐(1)
摘要:快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想 分治法也确实实用,因此很多软件公司的笔试面试,常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,自己总结整理一下,希望对大家理解有帮助。 原理 快速排序的基本思想:通过一趟 阅读全文
posted @ 2021-03-11 16:24 霞光里 阅读(5717) 评论(0) 推荐(1)
摘要:预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是一个树形结构,其实堆的底层是一棵完全二叉树。而完全二叉树是一层一层按照进入的顺序排成的。按照这个特性,我们可以 阅读全文
posted @ 2021-03-11 10:34 霞光里 阅读(410) 评论(0) 推荐(0)
摘要:大学的课程 数据结构 工作中得时不时翻翻,要不然容易忘,这里简单整理下知识点。 一、树的定义 树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。 树具有的特点有: (1)每个结点有零个或多个子结点 (2)没有父节点的结点称为根节点 (3)每一个非根结点有且只有一个父节点 ( 阅读全文
posted @ 2021-03-10 16:10 霞光里 阅读(952) 评论(0) 推荐(1)
摘要:一、数据结构分类 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示: 1)数组(Array) 数组是一种聚合数据类型,是将具有相同类型的若干变量有序的组织在一起的集合。数组可以说是最基本 阅读全文
posted @ 2021-03-10 15:06 霞光里 阅读(1621) 评论(0) 推荐(0)
摘要:一、排序算法概述 1、定义 将杂乱无章的数据元素,通过一定的方法按关键字顺序排列的过程叫做排序。 2、分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比 阅读全文
posted @ 2021-03-10 10:23 霞光里 阅读(1008) 评论(0) 推荐(0)