数据结构Java版排序(一)

目录1.概念1.1稳定性2.七大排序2.1插入排序2.1.1直接插入排序-原理2.1.2性能分析2.1.3折半插入排序(了解)2.2希尔排序2.2.1原理2.2.2性能分析2.3选择排序2.3.1原理2.3.2性能分析2.4堆排序2.4.1原理2.4.2性能分析2.5冒泡排序2.5.1原理2.5.2

数据结构之手斯B树(心中有B树,做人要谦虚)

1970年,R.Bayer和E.mccreight提出了一种适合外查找的树,它是一种平衡的多叉树,称为B树(有些地方写的是B-树,注意不要误读成"B减树")。一棵M阶(M>2)的B树,是一棵平衡的M路平衡搜索树,可以是空树或者满足一下性质:1. 根节点至少有两个孩子2. 每个非根节点至少有M/

数据结构之跳表(含代码实现)

目录 1.跳表的相关概念2.跳表节点的定义及其实现2.1跳表的插入2.2跳表的删除3.letecode测试及其链接1.跳表的相关概念跳表全称为跳跃列表,它允许快速查询,插入和删除一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(logn)。快速查询是通过维护一个多层次的链

Python之并查集 洛谷 蓝桥杯

同时正在备战蓝桥杯 题解如有不足请多批评指正大一双非本科在读目标是进大厂洛谷:亲戚关系 题目链接问题分析:这是一道考察并查集的经典例题。何为并查集?并查集是一种(树型)数据结构,用于处理一些不相交集合的合并及查询问题。思想:用一个数组表示了整片森林,树的根节点唯一标识了一个集合,我们只要找到了某个元

真正说透Redis五种数据结构

文章目录前言一、5种基本数据结构二、字符串String1.常用操作2.应用场景二、哈希hash1.常用操作2.应用场景二、列表list1.常用操作2.应用场景二、 集合set1.常用操作2.应用场景二、有序集合sorted set1.常用操作2.应用场景总结前言Redis作为缓存数据库,目前在市场上

最短路算法模板(Dijkstra、Bellman_ford、spfa、Floyd)

最短路算法模板总结图论当中将图为有向图和无向图,这里只考虑有向图的算法。对于无向图,我们将其看做是一种特殊的有向图,对所有的无向边u↔vu \leftrightarrow vu↔v都看做是u→vu\to vu→v和v→uv \to uv→u。约定:nnn表示图中点数,mmm表示图中边数。稠密图:

【JavaSE|数据结构】堆,优先级队列,topK问题与堆排序

本篇文章带大家认识数据结构——堆,所谓的堆,其实就是使用顺序表实现的树,前面所介绍的二叉树是基于链式结构所实现的,本文将介绍底层为顺序表的二叉树,由于使用顺序表实现非完全二叉树会存在内存空间浪费问题,所以常常使用顺序表实现完全二叉树,而这个使用顺序表所实现的完全二叉树就是堆。

【数据结构】二叉搜索树剖析(附源码)

二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉搜索

一文掌握二叉树

这里写目录标题树形结构节点的度树的度叶子结点或终端结点双亲结点或父结点孩子结点或子结点根节点结点的层次树的高度或深度兄弟节点树的表示形式二叉树二叉树的组成情况两种特殊的二叉树二叉树的性质二叉树的存储实现二叉树实现类创建树前序遍历中序遍历后序遍历获取二叉树当中结点的个数遍历方法子问题方法二级目录三级目

线段树详解(含代码实现经过测试)

1.线段树介绍什么是线段树?线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。[1]对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,

分分钟带你解决数据结构------Java详解二叉树

声明:此博客涵盖众多二叉树知识点,可供学校期末考试,可供提升对二叉树的理解文章前提:通过本文章可以掌握:二叉树数据结构的概念和基本实现二叉树前中后序的递归写法掌握二叉树层序的写法二叉树的前中后序的非递归写法二叉树相关的面试题文章目录:...

【数据结构-C】栈 && 队列

目录????栈介绍????栈的实现方式????顺序栈的基本操作及图解分析????栈的表示????初始化栈????销毁栈????检查栈是否为空????入栈????出栈????获取栈顶元素????队列介绍????队列的实现方式????链式队列的基本操作及图解分析????队列的表示形式????队列初始化?

并查集实现及其应用

先看看度娘给出的定义吧:并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中。其特点是看似并不复杂,但数据量极大,若用正常的数

八大常用排序

目录前言一、插入排序二、希尔排序三、选择排序四、堆排序五、冒泡排序六、快速排序七、归并排序八、计数排序前言此篇博客都是以升序为例,降序只需更改部分地方即可,所以只排一个一、插入排序单趟排序如上图,在一个有序数组中插入一个6,只要找到比6小的数,此数后面的数往后挪动,然后在其后插入6即可整个插入排序外

【Java数据结构】——栈与队列深度剖析

手术刀试剖析栈和队列

卷进大厂系列之LeetCode刷题笔记:设计链表(中等)

本文介绍了力扣中涉及链表题目,包含了算法讲解。学算法,刷力扣,加油卷,进大厂!欢迎交流讨论!

Python数据结构与算法(2.7)——跳表

在诸如单链表、双线链表等普通链表中,查找、插入和删除操作由于必须从头结点遍历链表才能找到相关链表,因此时间复杂度均为 O(n)。跳表是带有附加指针的链表,使用这些附加指针可以跳过一些中间结点,用以快速完成查找、插入和删除等操作。本节将介绍跳表的相关概念及其具体实现。

数据结构--排序之快速排序

快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。快排每一趟

链表的OJ题练习

目录????????1、给你单链表的头节点head,请你反转链表,并返回反转后的链表。????????2、给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。????????3、给定一个头结点为head的非空单链

栈和队列--基本操作

本节目标学习栈的原理及基本实现 学习队列的原理及基本实现栈:一种特殊的线性表,其只允许在固定一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵循后进先出 LIFO (Last In First Out) 的原则。压栈:栈的插入操作叫做进栈,压栈,入栈,

登录可以使用的更多功能哦! 登录
作者榜
...
资讯小助手

资讯同步

...
内容小助手

文章同步

...
Deephub

公众号:deephub-imba

...
奕凯

公众号:奕凯的技术栈