- 引言排序算法一直是很经常使用的功能。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 题目 分析 环链 环形链表 题目 分析==我们...
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签