- 引言排序算法一直是很经常使用的功能。Go 语言标准库为我们提供了方便快捷的 sort 包 ,这个包实现了四种基本排序算法:插入排序、归并排序、堆排序和快速排序。Go 的 sort 包实现了内置和用户定义类型的排序。我们将首先查看内置函数的排序。常见数据类型排序为了方便对常用数据类型的操作,sort 包提供了对 []int 切片、[]float64 切片和 []string 切片完整支持:so... 引言排序算法一直是很经常使用的功能。Go 语言标准库为我们提供了方便快捷的 sort 包 ,这个包实现了四种基本排序算法:插入排序、归并排序、堆排序和快速排序。Go 的 sort 包实现了内置和用户定义类型的排序。我们将首先查看内置函数的排序。常见数据类型排序为了方便对常用数据类型的操作,sort 包提供了对 []int 切片、[]float64 切片和 []string 切片完整支持:so...
- 单向链表的特点单向链表,见名知意,即单向存储的链表。由一个个节点链接而成,每个节点保存==当前节点存储的数据==以及==下一个节点的位置==(由于java中淡化了指针这个概念,此处我们可以理解为保存下一个节点)每个节点只知道后继节点是谁,而不清楚自己的上一个前驱节点(就像间谍一样,老大能找到你,但你不能去找老大) 主要属性及方法 size代表链表中节点的数量 节点类Node属性:T dat... 单向链表的特点单向链表,见名知意,即单向存储的链表。由一个个节点链接而成,每个节点保存==当前节点存储的数据==以及==下一个节点的位置==(由于java中淡化了指针这个概念,此处我们可以理解为保存下一个节点)每个节点只知道后继节点是谁,而不清楚自己的上一个前驱节点(就像间谍一样,老大能找到你,但你不能去找老大) 主要属性及方法 size代表链表中节点的数量 节点类Node属性:T dat...
- @[toc]上一节说到了单链表,这一节我们来手写一个双向链表,在这之前,需要先补充一下关于双链表的概念。 什么是双向链表双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 属性及方法 节点Node存储的数据 T data、直接前驱节点 Node pri、直接后继节点 N... @[toc]上一节说到了单链表,这一节我们来手写一个双向链表,在这之前,需要先补充一下关于双链表的概念。 什么是双向链表双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 属性及方法 节点Node存储的数据 T data、直接前驱节点 Node pri、直接后继节点 N...
- 1.0 List集合分类List系列集合:添加的元素是有序,元素按进入先后有序保存,可重复,有索引ArrayList: 添加的元素是有序,可重复,有索引;接口实现类, 数组, 随机访问, 没有同步, 线程不安全LinkedList: 添加的元素是有序,可重复,有索引;接口实现类, 链表, 插入删除, 没有同步, 线程不安全Vector :是线程安全的,速度慢,开发中很少使用;接口实现类 数... 1.0 List集合分类List系列集合:添加的元素是有序,元素按进入先后有序保存,可重复,有索引ArrayList: 添加的元素是有序,可重复,有索引;接口实现类, 数组, 随机访问, 没有同步, 线程不安全LinkedList: 添加的元素是有序,可重复,有索引;接口实现类, 链表, 插入删除, 没有同步, 线程不安全Vector :是线程安全的,速度慢,开发中很少使用;接口实现类 数...
- ==我们要清楚液晶在哪一层,可以很明显的看出在服务层 -Ser== ==首先我先说一下我这套板子数码管和液晶不是共存的,他们有公用的牛角座,一个用了另一个就不可以用了== 数码管牛角座接法 液晶牛角座接法 ==所以我不好一起演示给你们看,也就是和上一篇博客没有没有什么关系,但是质量这方面我没见过比我好的,除了汪老师== 原理图 LCD1602引脚 ==你们最爱的时序图== 写指令函数LC... ==我们要清楚液晶在哪一层,可以很明显的看出在服务层 -Ser== ==首先我先说一下我这套板子数码管和液晶不是共存的,他们有公用的牛角座,一个用了另一个就不可以用了== 数码管牛角座接法 液晶牛角座接法 ==所以我不好一起演示给你们看,也就是和上一篇博客没有没有什么关系,但是质量这方面我没见过比我好的,除了汪老师== 原理图 LCD1602引脚 ==你们最爱的时序图== 写指令函数LC...
- 排序 常见的排序算法 常见排序算法的实现 冒泡排序 ==也是我们本身接触最早的排序 很简单的一个排序== 完整冒泡排序代码 快速排序(无敌的排序) 将区间按照基准值划分为左右两半部分的常见方式有: 1.hoare版本==(发明快排的人用的方法)== 最左边做key 最右边做key 测性能 选1000 一千 选10000 一万 选100000 十万 选10... 排序 常见的排序算法 常见排序算法的实现 冒泡排序 ==也是我们本身接触最早的排序 很简单的一个排序== 完整冒泡排序代码 快速排序(无敌的排序) 将区间按照基准值划分为左右两半部分的常见方式有: 1.hoare版本==(发明快排的人用的方法)== 最左边做key 最右边做key 测性能 选1000 一千 选10000 一万 选100000 十万 选10...
- 排序 排序的概念及其运用 排序的概念 排序运用 ==来上京东== ==大学排名== 常见的排序算法 常见排序算法的实现 插入排序 基本思想 ==但是数组肯定不是有序的,所以我们得先让数组有序== 先把打印数组给剥离出来 插入排序 希尔排序( 缩小增量排序 ) (反正希尔牛逼) 希尔排序步骤 ==单组多躺== ==多组插入== ==多组一锅炖(要是分组插麻烦我们也可以一锅炖)== ==多... 排序 排序的概念及其运用 排序的概念 排序运用 ==来上京东== ==大学排名== 常见的排序算法 常见排序算法的实现 插入排序 基本思想 ==但是数组肯定不是有序的,所以我们得先让数组有序== 先把打印数组给剥离出来 插入排序 希尔排序( 缩小增量排序 ) (反正希尔牛逼) 希尔排序步骤 ==单组多躺== ==多组插入== ==多组一锅炖(要是分组插麻烦我们也可以一锅炖)== ==多...
- 排序 常见的排序算法 常见排序算法的实现 归并排序 基本思想 递归写法 通过调试看一下现象 归并顺序 归并排序递归子函数 归并排序递归实现 非递归写法 2^n^个元素的数组 随便几个元素的数组 修正下标 归并排序非递归实现 修正下标 归一部分拷一部分 归并排序非递归实现 归一部分拷一部分 归并排序的特性总结 时间复杂度 测性能 1000 一千 10000 ... 排序 常见的排序算法 常见排序算法的实现 归并排序 基本思想 递归写法 通过调试看一下现象 归并顺序 归并排序递归子函数 归并排序递归实现 非递归写法 2^n^个元素的数组 随便几个元素的数组 修正下标 归并排序非递归实现 修正下标 归一部分拷一部分 归并排序非递归实现 归一部分拷一部分 归并排序的特性总结 时间复杂度 测性能 1000 一千 10000 ...
- 二叉树OJ淬体 例1:单值二叉树 题目 例2:二叉树的前序遍历 题目 例3:二叉树的中序遍历 题目 例4:二叉树的后序遍历 题目 例5:相同的树 题目 例6:对称二叉树 题目 例7:另一棵树的子树 题目 例8:二叉树遍历 题目 二叉树OJ淬体 例1:单值二叉树 题目bool isUnivalTree(struct TreeNode* root){ //空树直接就是单值 if(!... 二叉树OJ淬体 例1:单值二叉树 题目 例2:二叉树的前序遍历 题目 例3:二叉树的中序遍历 题目 例4:二叉树的后序遍历 题目 例5:相同的树 题目 例6:对称二叉树 题目 例7:另一棵树的子树 题目 例8:二叉树遍历 题目 二叉树OJ淬体 例1:单值二叉树 题目bool isUnivalTree(struct TreeNode* root){ //空树直接就是单值 if(!...
- 链式二叉树 那么链式二叉树有什么好的地方呢 二叉树的遍历 前序、中序以及后序遍历 按照规则,二叉树的遍历有:前序/中序/后序的递归结构遍历:(上图为例图)(前中后访问根的时机不一样) 分治 二叉树 二叉树节点 我们把上面的树建好 二叉树前序遍历 二叉树中序遍历 二叉树后序遍历 二叉树节点个数 次数用传址的方式 次数用返回值的方式(假如我是代码我必然要嫁给这条代码) 二叉树叶子节点个数 二叉... 链式二叉树 那么链式二叉树有什么好的地方呢 二叉树的遍历 前序、中序以及后序遍历 按照规则,二叉树的遍历有:前序/中序/后序的递归结构遍历:(上图为例图)(前中后访问根的时机不一样) 分治 二叉树 二叉树节点 我们把上面的树建好 二叉树前序遍历 二叉树中序遍历 二叉树后序遍历 二叉树节点个数 次数用传址的方式 次数用返回值的方式(假如我是代码我必然要嫁给这条代码) 二叉树叶子节点个数 二叉...
- 用栈实现队列 题目 队结构体 队初始化 入“队” 出“队”并取出队元素 返回队头 判断队空 队列销毁 队列代码(接口代码去我之前文章取) 算法开启小码农栈血脉 ==队列接口见 算法开启小码农队列血脉== 用队列实现栈 题目 栈结构体 栈初始化 入“栈” 出“栈”并取栈顶元素 取栈顶元素 判断栈空 栈销毁 用栈实现队列 题目 队结构体typedef struct { ST PushST... 用栈实现队列 题目 队结构体 队初始化 入“队” 出“队”并取出队元素 返回队头 判断队空 队列销毁 队列代码(接口代码去我之前文章取) 算法开启小码农栈血脉 ==队列接口见 算法开启小码农队列血脉== 用队列实现栈 题目 栈结构体 栈初始化 入“栈” 出“栈”并取栈顶元素 取栈顶元素 判断栈空 栈销毁 用栈实现队列 题目 队结构体typedef struct { ST PushST...
- 队列 队列的概念及结构 队列的实现 代码模块 队列节点 队列初始化函数QueueInit 对列销毁函数QueueDestroy 入队函数QueuePush 出队函数QueuePop 队列判空函数QueueErase 取队头函数QueueFront 取队尾函数QueueBack 取队长函数QueueSize 测试 代码 Queue.h Queue.c test.c 队列 队列的概念及结构队列... 队列 队列的概念及结构 队列的实现 代码模块 队列节点 队列初始化函数QueueInit 对列销毁函数QueueDestroy 入队函数QueuePush 出队函数QueuePop 队列判空函数QueueErase 取队头函数QueueFront 取队尾函数QueueBack 取队长函数QueueSize 测试 代码 Queue.h Queue.c test.c 队列 队列的概念及结构队列...
- 栈 栈的概念及结构 栈的实现 栈节点 栈初始化函数StackInit 入栈函数StackPush 栈销毁函数StackDestroy 出栈函数StackPop 判断栈是否为空 函数StackEmpty 取栈顶元素函数StackTop 栈大小函数StackSize 遍历栈 代码 Stack.h Stack.c test.c 练习 例1有效的括号 栈 栈的概念及结构栈:一种特殊的线性表,其只允... 栈 栈的概念及结构 栈的实现 栈节点 栈初始化函数StackInit 入栈函数StackPush 栈销毁函数StackDestroy 出栈函数StackPop 判断栈是否为空 函数StackEmpty 取栈顶元素函数StackTop 栈大小函数StackSize 遍历栈 代码 Stack.h Stack.c test.c 练习 例1有效的括号 栈 栈的概念及结构栈:一种特殊的线性表,其只允...
- 双链表 双链表结构图 双链表节点 双链表初始化函数ListInit 双链表尾插函数ListPushBack 双链表打印函数ListPrint 双链表尾删函数ListPopBack 双链表头插函数ListPushFront 获得双链表节点函数BuyListNode 双链表头删函数ListPopFront 双链表查找函数ListFind 双链表插入函数ListInsert(pos之前插入因为c... 双链表 双链表结构图 双链表节点 双链表初始化函数ListInit 双链表尾插函数ListPushBack 双链表打印函数ListPrint 双链表尾删函数ListPopBack 双链表头插函数ListPushFront 获得双链表节点函数BuyListNode 双链表头删函数ListPopFront 双链表查找函数ListFind 双链表插入函数ListInsert(pos之前插入因为c...
- 环链 环形链表 题目 分析 延伸问题: ==1.为什么fast和slow会在环中相遇,会不会有这么一种情况呢。就是在环中一直交错永远遇不上?请证明一下。== 证明: ==这里就又衍生出了一个问题就是slow与fast只要是步差为一就可以相遇== ==2.为什么slow走一步,fast走两步呢?fast可不可以走大于两步呢?== 环形链表 II 题目 分析 环链 环形链表 题目 分析==我们... 环链 环形链表 题目 分析 延伸问题: ==1.为什么fast和slow会在环中相遇,会不会有这么一种情况呢。就是在环中一直交错永远遇不上?请证明一下。== 证明: ==这里就又衍生出了一个问题就是slow与fast只要是步差为一就可以相遇== ==2.为什么slow走一步,fast走两步呢?fast可不可以走大于两步呢?== 环形链表 II 题目 分析 环链 环形链表 题目 分析==我们...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签