- 前言线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种。1. 认识线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组... 前言线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种。1. 认识线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组...
- 3. 空间复杂度3.1 空间复杂度的概念空间复杂度又是什么呢?空间复杂度也是一个问题规模n的函数,是对一个算法在运行过程中临时占用存储空间大小的量度 。空间复杂度不是计算程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟时间复杂度类似,也使用大O渐进表示法。注意:函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译... 3. 空间复杂度3.1 空间复杂度的概念空间复杂度又是什么呢?空间复杂度也是一个问题规模n的函数,是对一个算法在运行过程中临时占用存储空间大小的量度 。空间复杂度不是计算程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟时间复杂度类似,也使用大O渐进表示法。注意:函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译...
- 前言什么是数据结构?数据结构是计算机存储、组织数据的方式。指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算... 前言什么是数据结构?数据结构是计算机存储、组织数据的方式。指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算...
- 数据类型是编程语言中的一个重要概念,它定义了数据的类型和提供了特定的操作和方法。在 python 中,数据类型的作用是将不同类型的数据进行分类和定义,例如数字、字符串、列表、元组、集合、字典等。这些数据类型不仅定义了数据的类型,还为数据提供了一些特定的操作和方法,例如字符串支持连接和分割,列表支持排序和添加元素,字典支持查找和更新等。因此,选择合适的数据类型是 python 编程的重要组成部... 数据类型是编程语言中的一个重要概念,它定义了数据的类型和提供了特定的操作和方法。在 python 中,数据类型的作用是将不同类型的数据进行分类和定义,例如数字、字符串、列表、元组、集合、字典等。这些数据类型不仅定义了数据的类型,还为数据提供了一些特定的操作和方法,例如字符串支持连接和分割,列表支持排序和添加元素,字典支持查找和更新等。因此,选择合适的数据类型是 python 编程的重要组成部...
- 我们熟知的内存开辟方式有两种:第一种便是通过“int”等关键字为变量开辟空间;第二种便是通过数组开辟一段连续的空间。如下:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是这样开辟的空间有俩个特点:1. 空间开辟大小是固定的。2. 数组在声明的时候,必须指定数组的长度,它所需要的内存在编译时分配但有的时候我... 我们熟知的内存开辟方式有两种:第一种便是通过“int”等关键字为变量开辟空间;第二种便是通过数组开辟一段连续的空间。如下:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是这样开辟的空间有俩个特点:1. 空间开辟大小是固定的。2. 数组在声明的时候,必须指定数组的长度,它所需要的内存在编译时分配但有的时候我...
- 前言 毕业季转眼即到,工作成为毕业季的头等大事,必须得认认真真进行知识储备,迎战笔试、电面、面试。 许久未接触排序算法了。平时偶尔接触到时自己会不假思索的百度,然后就是Ctrl+C、Ctrl+V,好点的话封装为一个排序工具供以后使用。这样的学习方法百害而无一益,只因自己缺少了思索,未能真正理解到算法的核心精髓所在。下面系统的对快速排序、堆排序、冒泡排序、插入排序、选择排序、归... 前言 毕业季转眼即到,工作成为毕业季的头等大事,必须得认认真真进行知识储备,迎战笔试、电面、面试。 许久未接触排序算法了。平时偶尔接触到时自己会不假思索的百度,然后就是Ctrl+C、Ctrl+V,好点的话封装为一个排序工具供以后使用。这样的学习方法百害而无一益,只因自己缺少了思索,未能真正理解到算法的核心精髓所在。下面系统的对快速排序、堆排序、冒泡排序、插入排序、选择排序、归...
- 这篇文章我们一起来学习一下C/C++程序的内存开辟以及柔性数组!!!1. C/C++程序的内存开辟C和C++的内存开辟方式是非常类似的,这篇文章我们就来学习一下C/C++程序的内存开辟。在之前的文章里其实我们简单的介绍过C语言中的内存划分。大致可以分为:栈区,堆区和静态区:那今天,我们来更加细致的细致的讲解一下C/C++程序的内存开辟。首先,我们来看一张图:这张图更细致的划分了一下内存,接下... 这篇文章我们一起来学习一下C/C++程序的内存开辟以及柔性数组!!!1. C/C++程序的内存开辟C和C++的内存开辟方式是非常类似的,这篇文章我们就来学习一下C/C++程序的内存开辟。在之前的文章里其实我们简单的介绍过C语言中的内存划分。大致可以分为:栈区,堆区和静态区:那今天,我们来更加细致的细致的讲解一下C/C++程序的内存开辟。首先,我们来看一张图:这张图更细致的划分了一下内存,接下...
- 从这篇文章开始,我们来学习C语言中的自定义类型(构造类型),今天来看第一种自定义类型——结构体,一起来学习吧!!!1.认识结构体前面我们已经学习过了很多的数据类型,整型、浮点型、指针类型等等。1.1为什么要学习结构体类型已经有这么多数据类型了,那我们为什么还要学习结构体类型呢?因为在开发的过程中,我们有时候难免要去描述一些复杂的对象,而想要描述这些对象,我们再使用之前学过的int,doubl... 从这篇文章开始,我们来学习C语言中的自定义类型(构造类型),今天来看第一种自定义类型——结构体,一起来学习吧!!!1.认识结构体前面我们已经学习过了很多的数据类型,整型、浮点型、指针类型等等。1.1为什么要学习结构体类型已经有这么多数据类型了,那我们为什么还要学习结构体类型呢?因为在开发的过程中,我们有时候难免要去描述一些复杂的对象,而想要描述这些对象,我们再使用之前学过的int,doubl...
- 一、情景回顾时间:2016.9.18 15:00-17:00地点:山东省网络环境智能计算技术重点实验室事件:滴滴笔试总体来说,滴滴笔试内容体量不算多,主要分为19道选择题、1道多选题,2道编程题、1道简答题(也不简单)。 二、选择题考查知识点:二叉树某层中节点个数(2i-1)、费波纳茨数列应用(上9级台阶的方法-分1步、2步)、Linux下文件软、硬链接。还有各种计算题(10个人握手,每个... 一、情景回顾时间:2016.9.18 15:00-17:00地点:山东省网络环境智能计算技术重点实验室事件:滴滴笔试总体来说,滴滴笔试内容体量不算多,主要分为19道选择题、1道多选题,2道编程题、1道简答题(也不简单)。 二、选择题考查知识点:二叉树某层中节点个数(2i-1)、费波纳茨数列应用(上9级台阶的方法-分1步、2步)、Linux下文件软、硬链接。还有各种计算题(10个人握手,每个...
- 企业笔试过程中会涉及到数据结构的方方面面,现将有关图的深度优先搜索与广度优先搜索进行整理归纳,方便日后查阅。在已做过的笔试题目中,可用DFS解决的题目有:“地牢逃脱”–网易“遍历最短路径长度”–携程“小青蛙走迷宫”–滴滴三道题目都是DFS的经典应用,主要采用递归+回溯的方式。下面主要讲解一下DFS与BFS的具体实现。 深度优先搜索(DFS) && 广度优先搜索(BFS)package cn.... 企业笔试过程中会涉及到数据结构的方方面面,现将有关图的深度优先搜索与广度优先搜索进行整理归纳,方便日后查阅。在已做过的笔试题目中,可用DFS解决的题目有:“地牢逃脱”–网易“遍历最短路径长度”–携程“小青蛙走迷宫”–滴滴三道题目都是DFS的经典应用,主要采用递归+回溯的方式。下面主要讲解一下DFS与BFS的具体实现。 深度优先搜索(DFS) && 广度优先搜索(BFS)package cn....
- 一、情景回顾时间: 2016.9.23 12:00-14:00 19:00-21:00地点: 山东省网络环境智能计算技术重点实验室事件: 笔试注意事项:要有大局观,该舍弃的还是要舍弃,不要在一道编程题上占用超过30分钟的时间。当你思考了15分钟,还没有好的解决方式的时候,毅然舍弃! 二、结构体总体来说,题目不算太难。尤其是编程题,思路很清晰,不涉及到太复杂的算法。只有第三题可能涉及到递... 一、情景回顾时间: 2016.9.23 12:00-14:00 19:00-21:00地点: 山东省网络环境智能计算技术重点实验室事件: 笔试注意事项:要有大局观,该舍弃的还是要舍弃,不要在一道编程题上占用超过30分钟的时间。当你思考了15分钟,还没有好的解决方式的时候,毅然舍弃! 二、结构体总体来说,题目不算太难。尤其是编程题,思路很清晰,不涉及到太复杂的算法。只有第三题可能涉及到递...
- CopyOnWriteArraySet是Java中的一个线程安全的集合类,它是通过使用CopyOnWriteArrayList来实现的。下面是CopyOnWriteArraySet的底层原理:CopyOnWriteArraySet内部维护了一个CopyOnWriteArrayList,它是一个可变数组,所有的修改操作都会对底层数组进行一次拷贝。当需要进行修改操作时,CopyOnWriteAr... CopyOnWriteArraySet是Java中的一个线程安全的集合类,它是通过使用CopyOnWriteArrayList来实现的。下面是CopyOnWriteArraySet的底层原理:CopyOnWriteArraySet内部维护了一个CopyOnWriteArrayList,它是一个可变数组,所有的修改操作都会对底层数组进行一次拷贝。当需要进行修改操作时,CopyOnWriteAr...
- CopyOnWriteArrayList是Java中的线程安全的列表实现类。它的底层原理是在每次修改操作(如添加、删除元素)时,都会创建一个新的数组来替换旧的数组。 具体来说,CopyOnWriteArrayList会在内部维护一个数组(称为副本数组),并同时维护一个可变的变量,用于记录当前的数组版本。当需要修改列表时,CopyOnWriteArrayList会创建一个新的数组副本,并进行修... CopyOnWriteArrayList是Java中的线程安全的列表实现类。它的底层原理是在每次修改操作(如添加、删除元素)时,都会创建一个新的数组来替换旧的数组。 具体来说,CopyOnWriteArrayList会在内部维护一个数组(称为副本数组),并同时维护一个可变的变量,用于记录当前的数组版本。当需要修改列表时,CopyOnWriteArrayList会创建一个新的数组副本,并进行修...
- ConcurrentHashMap是Java中的线程安全的哈希表实现。它通过使用分段锁(Segment)来实现并发访问的高效率。下面是ConcurrentHashMap的底层原理:数据结构:ConcurrentHashMap内部由一个Segment数组和若干个哈希桶(Hash Entry)组成。每个Segment包含一个哈希桶数组和一个共享的锁。每个哈希桶又是一个链表或红黑树的数据结构。分段... ConcurrentHashMap是Java中的线程安全的哈希表实现。它通过使用分段锁(Segment)来实现并发访问的高效率。下面是ConcurrentHashMap的底层原理:数据结构:ConcurrentHashMap内部由一个Segment数组和若干个哈希桶(Hash Entry)组成。每个Segment包含一个哈希桶数组和一个共享的锁。每个哈希桶又是一个链表或红黑树的数据结构。分段...
- 🤵♂️ 个人主页: @计算机魔术师👨💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。@[toc] 一、堆栈引入计算机如何进行表达式求值由于表达式符号是有优先级的,所以这是难点之一有以下两个表达式显然后缀表达式更加简单,不用考虑优先级,演示一个例子对这种求值策略我们有以下启示这其实便是这节我们要讲的堆栈 二、 堆栈的抽象数据类型描述例如我们叠在一起的碗,在使用的清洗都和堆栈的... 🤵♂️ 个人主页: @计算机魔术师👨💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。@[toc] 一、堆栈引入计算机如何进行表达式求值由于表达式符号是有优先级的,所以这是难点之一有以下两个表达式显然后缀表达式更加简单,不用考虑优先级,演示一个例子对这种求值策略我们有以下启示这其实便是这节我们要讲的堆栈 二、 堆栈的抽象数据类型描述例如我们叠在一起的碗,在使用的清洗都和堆栈的...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签