- auto关键字(C++11)8.1 类型别名思考随着不断地学习,往后我们的程序会越来越复杂,程序中用到的类型也可能越来越复杂,经常体现在:类型难于拼写含义不明确导致容易出错比如:这个std::map::iterator就是一个类型,现在我们还看不懂,还没学到。这个类型就很长,我们写的时候就很容易可能会写错,怎么简化呢?大家可能会想到用typedef去取一个别名。这确实是一个方法。使用type... auto关键字(C++11)8.1 类型别名思考随着不断地学习,往后我们的程序会越来越复杂,程序中用到的类型也可能越来越复杂,经常体现在:类型难于拼写含义不明确导致容易出错比如:这个std::map::iterator就是一个类型,现在我们还看不懂,还没学到。这个类型就很长,我们写的时候就很容易可能会写错,怎么简化呢?大家可能会想到用typedef去取一个别名。这确实是一个方法。使用type...
- 选择排序3.1 直接选择排序我们先来看第一种选择排序,直接选择排序:算法思想先从待排序的数据元素中选出最大(或最小)的一个元素,存放在序列的起始位置,再选出次大的放到第二个位置,依次循环往复,直到全部待排序的数据元素排完 。动图演示: 直接插入排序的思想呢非常简单,但是它的效率比较低,每遍历一次才选出一个数。所以:我们接下来实现一个优化一点的版本 怎么优化呢? 我们遍历一遍其实可以选出两个数... 选择排序3.1 直接选择排序我们先来看第一种选择排序,直接选择排序:算法思想先从待排序的数据元素中选出最大(或最小)的一个元素,存放在序列的起始位置,再选出次大的放到第二个位置,依次循环往复,直到全部待排序的数据元素排完 。动图演示: 直接插入排序的思想呢非常简单,但是它的效率比较低,每遍历一次才选出一个数。所以:我们接下来实现一个优化一点的版本 怎么优化呢? 我们遍历一遍其实可以选出两个数...
- List和SList都是C++ STL中的容器,都是基于双向链表实现的,可以存储可重复元素的特点。其中,List内部的节点结构包含两个指针一个指向前一个节点,一个指向后一个节点,而SList只有一个指针指向后一个节点,因此相对来说更节省存储空间,但不支持反向遍历,同时也没有List的排序功能。双向链表的数据元素可以通过链表指针串接成逻辑意义上的线性表,不同于采用线性表顺序存储结构的Vecto... List和SList都是C++ STL中的容器,都是基于双向链表实现的,可以存储可重复元素的特点。其中,List内部的节点结构包含两个指针一个指向前一个节点,一个指向后一个节点,而SList只有一个指针指向后一个节点,因此相对来说更节省存储空间,但不支持反向遍历,同时也没有List的排序功能。双向链表的数据元素可以通过链表指针串接成逻辑意义上的线性表,不同于采用线性表顺序存储结构的Vecto...
- 引言在计算机科学领域,红黑树(Red-Black Tree)是一种自平衡的二叉查找树,它能在O(log n)的时间复杂度内完成插入、删除和查找操作。由于其高效性和可预测性的性能,红黑树在许多领域都得到广泛应用。本文将重点介绍红黑树的遍历方式,并探讨如何将红黑树类型的数据存储到Redis中。 目录红黑树简介红黑树的遍历方式2.1 前序遍历2.2 中序遍历2.3 后序遍历将红黑树存储到Redi... 引言在计算机科学领域,红黑树(Red-Black Tree)是一种自平衡的二叉查找树,它能在O(log n)的时间复杂度内完成插入、删除和查找操作。由于其高效性和可预测性的性能,红黑树在许多领域都得到广泛应用。本文将重点介绍红黑树的遍历方式,并探讨如何将红黑树类型的数据存储到Redis中。 目录红黑树简介红黑树的遍历方式2.1 前序遍历2.2 中序遍历2.3 后序遍历将红黑树存储到Redi...
- 2023-08-12:用go语言写算法。实验室需要配制一种溶液,现在研究员面前有n种该物质的溶液,每一种有无限多瓶,第i种的溶液体积为v[i],里面含有w[i]单位的该物质,研究员每次可以选择一瓶溶液,将其倒入另外一瓶(假设瓶子的容量无限),即可以看作将两个瓶子内的溶液合并,此时合并的溶液体积和物质含量都等于之前两个瓶子内的之和。特别地,如果瓶子A与B的溶液体积相同,那么A与B合并之后,该物... 2023-08-12:用go语言写算法。实验室需要配制一种溶液,现在研究员面前有n种该物质的溶液,每一种有无限多瓶,第i种的溶液体积为v[i],里面含有w[i]单位的该物质,研究员每次可以选择一瓶溶液,将其倒入另外一瓶(假设瓶子的容量无限),即可以看作将两个瓶子内的溶液合并,此时合并的溶液体积和物质含量都等于之前两个瓶子内的之和。特别地,如果瓶子A与B的溶液体积相同,那么A与B合并之后,该物...
- Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 Trie树也有它的缺点,Tr... Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 Trie树也有它的缺点,Tr...
- 堆的应用我们已经学完堆了,那堆有啥应用呢?3.4.1 堆排序堆排序即利用堆的思想来进行排序,总共分为两个步骤:建堆升序:建大堆降序:建小堆利用堆删除思想来进行排序这就是堆排序的两个步骤。首先,简单解释一下为啥升序建大堆,降序建小堆:拿升序来说,其实建小堆也不是不能搞,只是不太好。为什么呢?现在这有一个数组,如果升序,建小堆可以首先可以得到最小的数据,🆗,就是堆顶元素。那像得到下一个次小的怎... 堆的应用我们已经学完堆了,那堆有啥应用呢?3.4.1 堆排序堆排序即利用堆的思想来进行排序,总共分为两个步骤:建堆升序:建大堆降序:建小堆利用堆删除思想来进行排序这就是堆排序的两个步骤。首先,简单解释一下为啥升序建大堆,降序建小堆:拿升序来说,其实建小堆也不是不能搞,只是不太好。为什么呢?现在这有一个数组,如果升序,建小堆可以首先可以得到最小的数据,🆗,就是堆顶元素。那像得到下一个次小的怎...
- 3. 二叉树的顺序结构及实现我们先来学习二叉树的顺序结构及其实现。3.1 二叉树的顺序结构普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。接下来我们将重点学习一下堆... 3. 二叉树的顺序结构及实现我们先来学习二叉树的顺序结构及其实现。3.1 二叉树的顺序结构普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。接下来我们将重点学习一下堆...
- 文章目录前言1. 树的概念及结构1.1 树的概念1.2 树与非树1.3 树的相关概念1.4 树的表示1.5 树在实际中的运用(表示文件系统的目录树结构)2. 二叉树概念及结构2.1 概念2.2 现实中的二叉树2.3 特殊的二叉树2.3.1 满二叉树2.3.1 完全二叉树2.4 二叉树的性质2.5 二叉树的存储结构2.5.1 顺序存储2.5.2 链式存储前言我们在前面文章学到的数据结构:顺序表... 文章目录前言1. 树的概念及结构1.1 树的概念1.2 树与非树1.3 树的相关概念1.4 树的表示1.5 树在实际中的运用(表示文件系统的目录树结构)2. 二叉树概念及结构2.1 概念2.2 现实中的二叉树2.3 特殊的二叉树2.3.1 满二叉树2.3.1 完全二叉树2.4 二叉树的性质2.5 二叉树的存储结构2.5.1 顺序存储2.5.2 链式存储前言我们在前面文章学到的数据结构:顺序表...
- 什么是动态规划? 和分治法一样,动态规划(dynamic programming)是通过组合子问题而解决整个问题的解。 分治法是将问题划分成一些独立的子问题,递归地求解各子问题,然后合并子问题的解。 动态规划适用于子问题不是独立的情况,也就是各子问题包含公共的子子问题。 此时,分治法会做许多不必要的工作,即重复地求解公共的子问题。动态规划算法对每个子问题只求解... 什么是动态规划? 和分治法一样,动态规划(dynamic programming)是通过组合子问题而解决整个问题的解。 分治法是将问题划分成一些独立的子问题,递归地求解各子问题,然后合并子问题的解。 动态规划适用于子问题不是独立的情况,也就是各子问题包含公共的子子问题。 此时,分治法会做许多不必要的工作,即重复地求解公共的子问题。动态规划算法对每个子问题只求解...
- 2023-08-08:给你一棵 n 个节点的树(连通无向无环的图)节点编号从 0 到 n - 1 且恰好有 n - 1 条边给你一个长度为 n 下标从 0 开始的整数数组 vals分别表示每个节点的值同时给你一个二维整数数组 edges其中 edges[i] = [ai, bi] 表示节点 ai 和 bi 之间有一条 无向 边一条 好路径 需要满足以下条件:开始节点和结束节点的值 相同 。开... 2023-08-08:给你一棵 n 个节点的树(连通无向无环的图)节点编号从 0 到 n - 1 且恰好有 n - 1 条边给你一个长度为 n 下标从 0 开始的整数数组 vals分别表示每个节点的值同时给你一个二维整数数组 edges其中 edges[i] = [ai, bi] 表示节点 ai 和 bi 之间有一条 无向 边一条 好路径 需要满足以下条件:开始节点和结束节点的值 相同 。开...
- 缓存策略解析在看java缓存策略之前先看一下目前java中存在的淘汰机制。 这里主要讲的是LFU,LRU,FIFO:FIFO(First in First out),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则在很多地方都会用到呢?因为这个原则简单、且符合人们的惯性思维,具备公平性,并且实现起来简单,直接使用数据结构中的队列... 缓存策略解析在看java缓存策略之前先看一下目前java中存在的淘汰机制。 这里主要讲的是LFU,LRU,FIFO:FIFO(First in First out),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则在很多地方都会用到呢?因为这个原则简单、且符合人们的惯性思维,具备公平性,并且实现起来简单,直接使用数据结构中的队列...
- 🤵♂️ 个人主页: @计算机魔术师👨💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。蓝桥杯竞赛专栏 | 简单题系列 (一) 作者: 计算机魔术师A 版本: 1.0 ( 2022.12.27 )摘要: 本文旨在准备明年2023的蓝桥杯竞赛,培养个人Java语法素养和手感。 希望可以帮助到一起备赛的小伙伴们。题目来自C语言网@[toc]前言:注意主类是 Main,编辑器用... 🤵♂️ 个人主页: @计算机魔术师👨💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。蓝桥杯竞赛专栏 | 简单题系列 (一) 作者: 计算机魔术师A 版本: 1.0 ( 2022.12.27 )摘要: 本文旨在准备明年2023的蓝桥杯竞赛,培养个人Java语法素养和手感。 希望可以帮助到一起备赛的小伙伴们。题目来自C语言网@[toc]前言:注意主类是 Main,编辑器用...
- Redis中的String数据结构底层原理是通过简单动态字符串(SDS)来实现的。简单动态字符串是Redis自己实现的一种字符串类型,与C语言的字符串相比,它具有更多的功能和优势。 简单动态字符串的结构如下:plaintextCopy codestruct sdshdr { int len; // 已使用的长度 int free; // ... Redis中的String数据结构底层原理是通过简单动态字符串(SDS)来实现的。简单动态字符串是Redis自己实现的一种字符串类型,与C语言的字符串相比,它具有更多的功能和优势。 简单动态字符串的结构如下:plaintextCopy codestruct sdshdr { int len; // 已使用的长度 int free; // ...
- 前言 本片博文主要讲解查找算法的相关知识。重点介绍二分查找。 二分查找算法是在有序数组中用到的较为频繁的一种查找算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn)。 在面试的时候二分查找是用的比较多一种查找算法,如何在面试官面前快速准确得的写出代码决定你是否能够被录... 前言 本片博文主要讲解查找算法的相关知识。重点介绍二分查找。 二分查找算法是在有序数组中用到的较为频繁的一种查找算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn)。 在面试的时候二分查找是用的比较多一种查找算法,如何在面试官面前快速准确得的写出代码决定你是否能够被录...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签