数据结构与算法
文章平均质量分 85
白日梦start
来自23届双非本科上岸字节百度实习的程序猿。
展开
-
哈希表(散列表)的代码实现及介绍
文章目录一、哈希表(散列表)1.解释2.代码实现二、字典树(前缀树)1.简单介绍2.代码实现三、探讨学习一、哈希表(散列表)1.解释这里引入百度百科的解释:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地原创 2021-09-14 15:50:58 · 471 阅读 · 0 评论 -
线段树(区间树)、字典树(Trie)的JAVA代码实现及介绍
文章目录一、线段树(区间树)1.解释2.代码实现二、字典树(前缀树)1.简单介绍2.代码实现三、探讨学习一、线段树(区间树)1.解释这里引入百度百科的解释:区间树的核心不是操作,而是区间时间复杂度 查询操作 数组:O(n) 区间树:O(log n)区间树不是一个完全二叉树是一个平衡二叉树推荐一篇UP主的博客:具有更详细的介绍线段树2.代码实现难度还是有的,需要多揣摩,递归思想package com.lingo.segment;import java.util.Arr原创 2021-09-14 09:45:52 · 465 阅读 · 0 评论 -
数据结构-树(Tree)的介绍以及二分搜索树的实现
文章目录一、树是什么?二、二分搜索树二分搜索树的性质代码实现(重点:删除任意元素)二分搜索树实现集合SetSet接口实现类:二分搜索树实现集合映射Map一、树是什么?这里引入百度百科的解释:树是一种数据结构,它是由n(n≥1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树。原创 2021-09-13 19:11:11 · 428 阅读 · 0 评论 -
查找算法-4种常用的查找算法
文章目录一、排序算法是什么?1.算法解读2.查找算法简介二、查找算法介绍及实现1.顺序查找算法描述代码实现:2.二分查找/折半查找算法描述代码实现:3.插值查找算法描述代码实现:4.斐波那契查找算法描述代码实现:一、排序算法是什么?1.算法解读这里引入百度百科的解释:谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。原创 2021-09-13 12:44:30 · 5193 阅读 · 0 评论 -
排序算法-10种排序算法
文章目录一、排序算法是什么?1.解释2.内部排序3.外部排序二、排序算法介绍及实现1.冒泡排序算法描述四、测试一、排序算法是什么?1.解释这里引入百度百科的解释:谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析。2.内原创 2021-09-13 11:29:46 · 709 阅读 · 0 评论 -
数据结构-链表(Linked List)的介绍与代码实现
文章目录一、链表是什么?二、单链表的实现1.需要实现的方法:2.引入内部Node(节点)类:3.在链表的任意位置添加元素:4.删除链表中任意位置的元素:5.更新链表中任意位置的元素:6.整体实现方法:三、单链表实现栈与队列1.实现栈:1.实现栈:2.实现队列:四、补充一、链表是什么?这里引入百度百科的解释:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。相比于线性表顺序结构,操作复杂。链表由一系列结点(链表中每一个元素称为结点)组成,结点可原创 2021-09-12 16:07:32 · 525 阅读 · 0 评论 -
数据结构-队列(queue)的介绍与代码实现
文章目录一、队列是什么?二、队列的接口三、通过动态数组实现队列四、测试一、队列是什么?这里引入百度百科的解释:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。通俗的理解:一种先进先出的数据结构队列上溢:队列的元素数量超出队列的容量队列下溢:对空队列执行出队操作二、队列的接口代码如下(示例):public inte原创 2021-09-12 14:43:39 · 744 阅读 · 0 评论 -
数据结构-栈(stack)的介绍与代码实现
文章目录一、栈是什么?二、栈的接口三、通过动态数组实现栈的接口四、测试一、栈是什么?这里引入百度百科的解释:栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈上溢:栈的元素数量超出栈的容量栈下溢:对空栈进行弹出操作原创 2021-09-12 14:32:25 · 508 阅读 · 0 评论 -
二次封装数组、稀疏数组
文章目录前言一、数组是什么?二、数组的优势与缺点1.优点2.缺点(局限性)三、二次封装数组总结前言这里简单介绍下数据结构到底是什么?为什么要学习数据结构呢?*通俗意义上讲:数据结构就是研究数据在计算机中的存储,组织,方便我们更高效率的做查询和修改操作*今天给大家简单介绍,整理学习最基础的数组的内容一、数组是什么?数组指有序的元素序列。也是最基本的数据类型如果将有限个类型相同的变量的集合命名,那么这个名称就是数组名,而组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。原创 2021-09-12 12:32:48 · 390 阅读 · 0 评论