Python数据结构与算法(2.2)——顺序表
线性表的顺序存储是把线性表的数据元素按逻辑次序依次存放在一组连续的存储单元中,即逻辑结构上相邻的两个数据元素存储在计算机内的物理存储位置也是相邻的,这种存储方法为整个线性表分配一整个内存块保存线性表的元素,借助数据元素在计算机内的物理位置表示线性表中数据元素之间的逻辑关系。采用顺序存储结构表示的线性
【数据结构】二叉树全解析(入门篇)
<font size=5????大家好,我是白晨,一个不是很能熬夜????,但是也想日更的人✈。如果喜欢这篇文章,点个赞????,关注一下????白晨吧!你的支持就是我最大的动力!????????????文章目录????前言1.树1.1 树的基本概念1.2 树的基本术语1.3 树的逻辑表示1.
数据结构——线性表之顺序表篇
目录前言顺序表的介绍和简单实现例题前言在介绍顺序表之前我们先简单了解一下线性表:线性表是n个具有相同特性的数据元素的有限序列,在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。常见的线性表:顺序表、链表、栈、队列、字符
2.C++-选择排序、冒泡排序、插入排序、希尔排序、归并排序、快速排序
1.常用排序算法介绍一个排序算法的好坏需要针对它在某个场景下的时间复杂度和空间复杂度来进行判断、并且排序都需要求其稳定性,比如排序之前a在b前面,且a=b,排序之后也要保持a在b前面、常用排序算法如下所示:2.选择排序首先i等于0,每次i++,并从i轮询到n,选择一个最小者与第i个位置进行交换.比如
Python数据结构与算法(2.1)——线性表的基本概念
线性表是应用最为广泛的一种数据结构,如其名所示,是一种典型的线性结构。本节主要介绍线性表的有关概念和基本操作,为之后线性表的实现奠定基础。
排序(一)——简单排序:插入排序 && 冒泡排序
leetcode:https://leetcode-cn.com/problems/sort-an-array/插入排序过程插入排序的过程分为两步:首先和当前位置的前一个元素进行比较,如果前一个元素比当前元素大,则后续进行调整,将前面的大元素不断向后移动,并找到合适的位置将当前元素插入进去;如果发现
大学生因疫情被封宿舍,无聊?那就刷几道链表的算法题解解闷儿---Java实现
LeetCode 203 移除链表元素LeetCode 876 链表的中间节点剑指Offer 22 链表中倒数第k个节点LeetCode 21 合并两个有序链表Leetcode 面试题 02.04. 分割链表LeetCode 234 回文链表LeetCode 160 相交链表
C语言数据结构与算法----树和二叉树全面总结(中)
目录一、前言二、二叉树的遍历1.先序遍历2.中序遍历3.后序遍历4.层次遍历三、遍历算法的应用1.建立二叉链表存储的二叉树2.输出叶子结点3.统计二叉树叶子结点数目4.求二叉树高度5.按树状打印二叉树四、线索二叉树1.基本概念2.基本结构3.建立中序线索化二叉树一、前言学习目标:掌握二叉树的先序、中
指针进阶(二) (跑路人笔记)
文章目录前言练习前言咳咳,本文是关于之前知识点的一些小练习可以巩固一下基础废话不多讲直接开始。本文的小练习我直接以代码块加注释解决了,望大家体谅。除此之外本次还加上了之前没讲到的知识点和例子。
【数据结构与算法】—— *栈 *
【数据结构与算法】—— *栈 *
力扣每日一题填坑系列——二叉树基础oj题合集
一些二叉树基础题
【JDK源码】HashMap源码分析(附常见面试题)
HashMap源码分析(附面试题)1.什么是哈希?在分析HashMap之前,我们先来了解什么是哈希?概念:Hash也称散列、哈希,对应的英文都是Hash。基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出这个映射的规则就是对应的Hash算法,而原始数据映射后的二进制串就是哈希值。Has
3秒的你对战“它”有没有胜算——quicksort
目录1.快排思路2.分块实现1.快排思路快速排序的基本思路就是选择一个基数.(我们这个基数的选择都是每一组最左边的数)然后排成:1.基数左边都是不大于它的,左边都是不小于它的2.然后左边、右边继续进行这个基本思路以完成排序作为最后的结束2.分块实现以6个数为一个例子吧!4,2 ,6,3
C语言数据结构与算法-----树和二叉树全面总结(上)
一、前言学习目标: 重点: 难点:二、树的概念和定义定义:n(n>=0)个结点的有限集合,n=0,空树 结点:表示树中的元素 根结点:第一个元素 叶结点:度为0,即没有子树 双亲结点:结点的直接前驱 孩子结点:结点的直接后继 兄弟结点:同一双亲结点的孩子 结点的度:结点的子树个数 结点的层次:
舍友仅仅上了个厕所,我就求出了链表的倒数第K个结点
文章目录题目要求方法1:统计长度代码方法2:双指针代码题目要求链接 :链表中倒数第k个结点_牛客题霸_牛客网 (nowcoder.com)本题目和博主曾经写过的:是一样的套路!感兴趣的老铁可以翻过去看一下!舍友仅仅打了一把游戏,我就学会了如何找链表的中间结点方法1:统计长度思路第一步:遍历链表得
堆排序;快速排序;归并排序
快速排序算法堆排序快速排序递归非递归归并排序递归非递归堆排序时间复杂度:0(N*log(N))空间复杂度:0(1)稳定性:不稳定private static void heapSort(int[] arr) { //建堆 crearHeap(arr); for (int
【哈希系列】舍友担心期末考睡不着,我连夜准备了这套哈希全套专题
⭐️引言⭐️ 大家好,我是执梗。今天为大家带来一套哈希套题的专项训练题型,哈希表在数据结构中占有非常重要的地位。很多同学总是学习了理论知识,缺乏实际使用。正所谓将军都是从战场上杀出来的,想要成为哈希大神,还得疯狂刷题。问题是很多同学他根本不知道如何找到合适的题目来训练,而且没有配套的答
【数据结构与算法】—— * 双向链表 *
【数据结构与算法】—— * 双向链表 * 多图详解
Redis的LRU缓存淘汰算法实现
1 标准LRU的实现原理LRU,最近最少使用(Least Recently Used,LRU),经典缓存算法。LRU会使用一个链表维护缓存中每个数据的访问情况,并根据数据的实时访问,调整数据在链表中的位置,然后通过数据在链表中的位置,表示数据是最近刚访问的,还是已有段时间未访问。LRU会把链头、尾分
Python数据结构与算法(1.7)——算法分析
我们已经知道算法是具有有限步骤的过程,其最终的目的是为了解决问题,而根据我们的经验,同一个问题的解决方法通常并非唯一。这就产生一个有趣的问题:如何对比用于解决同一问题的不同算法?为了以合理的方式提高程序效率,我们应该知道如何准确评估一个算法的性能。本节学习首先介绍算法分析的重要性,并讲解了分析算法的