- 汉诺塔问题 规则: 每次只能移动一个盘子任意一次移动,三个塔的状态必须是小盘子在上,大盘子在上 方法: n=1:直接把A上的一个盘子移动到C上,A->Cn=2: 把小盘子从A放到B上,A->B把大盘子从A放到C上,A->C把小盘子从B放到C上,B->C n=3: 把A上的两个盘子,通过C移动到B上去,调用递归实现把A上剩下的一个最大盘子移动到C... 汉诺塔问题 规则: 每次只能移动一个盘子任意一次移动,三个塔的状态必须是小盘子在上,大盘子在上 方法: n=1:直接把A上的一个盘子移动到C上,A->Cn=2: 把小盘子从A放到B上,A->B把大盘子从A放到C上,A->C把小盘子从B放到C上,B->C n=3: 把A上的两个盘子,通过C移动到B上去,调用递归实现把A上剩下的一个最大盘子移动到C...
- # 传值和传地址的区别 # 对于简单的数值,采用传值操作,即在函数内对参数的操作不影响外面的变量 # 对于复杂变量,采用传地址操作,此时函数内的参数和外部变量是同一份内容, # 任何地方对此内容的更改都影响另外的变量或参数的使用 def a(n): n[2] = 300 print(n) return None def b(n): n += 100 print(n)... # 传值和传地址的区别 # 对于简单的数值,采用传值操作,即在函数内对参数的操作不影响外面的变量 # 对于复杂变量,采用传地址操作,此时函数内的参数和外部变量是同一份内容, # 任何地方对此内容的更改都影响另外的变量或参数的使用 def a(n): n[2] = 300 print(n) return None def b(n): n += 100 print(n)...
- 插入排序基本思想基本步骤:直接插入排序(基于顺序查找)算法描述算法实现算法分析时间复杂度 —— **O(n^2)**空间复杂度 —— O(1)稳定性 折半插入排序(基于折半查找)算法实现算法分析 插入排序 基本思想 每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。 即边插... 插入排序基本思想基本步骤:直接插入排序(基于顺序查找)算法描述算法实现算法分析时间复杂度 —— **O(n^2)**空间复杂度 —— O(1)稳定性 折半插入排序(基于折半查找)算法实现算法分析 插入排序 基本思想 每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。 即边插...
- Huffman tree基本术语构造 Huffman tree哈夫曼构造算法实现 哈夫曼树的应用哈夫曼编码 Huffman tree 基本术语 路径和路径长度 路径:在一棵树中,从一个结点往下可以达到的孩子或子孙结点之间的通路。结点的路径长度:从一个结点到另一个结点的路径上分支的数目。 结点的权及带权路径长度 结点的权:将树中结点赋予一个... Huffman tree基本术语构造 Huffman tree哈夫曼构造算法实现 哈夫曼树的应用哈夫曼编码 Huffman tree 基本术语 路径和路径长度 路径:在一棵树中,从一个结点往下可以达到的孩子或子孙结点之间的通路。结点的路径长度:从一个结点到另一个结点的路径上分支的数目。 结点的权及带权路径长度 结点的权:将树中结点赋予一个...
- 在一个链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点只保留一个,最后返回链表头指针 例如:链表1->2->3->4->4->5, 处理后为 1->2->3->4->5 class LinkedNode: def __init__(self, x): self.val = x self.next = ... 在一个链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点只保留一个,最后返回链表头指针 例如:链表1->2->3->4->4->5, 处理后为 1->2->3->4->5 class LinkedNode: def __init__(self, x): self.val = x self.next = ...
- 排序(sorting)什么是排序排序的目的是什么?什么叫内部排序?什么叫外部排序?排序算法的好坏如何衡量?排序的分类内部排序外部排序 存储方式 各种排序算法比较排序算法比较排序算法选择规则 排序(sorting) 什么是排序 将一组杂乱无章的数据按一定规律顺次排列起来。 数据表 (datalist):它是待排序数据对象的有限集合。主关键字... 排序(sorting)什么是排序排序的目的是什么?什么叫内部排序?什么叫外部排序?排序算法的好坏如何衡量?排序的分类内部排序外部排序 存储方式 各种排序算法比较排序算法比较排序算法选择规则 排序(sorting) 什么是排序 将一组杂乱无章的数据按一定规律顺次排列起来。 数据表 (datalist):它是待排序数据对象的有限集合。主关键字...
- 栈 定义:只能在表的一端(栈顶)进行插入和删除运算的线性表逻辑结构:一对一关系存储结构 顺序栈链栈 运算规则:只能在栈顶运算,且访问结点时依照后进先出(LIFO)或先进后出(FILO)的原则实现方式 入栈出栈读栈顶元素值建栈判断栈空判断栈慢清空栈销毁栈 栈的表示和操作的实现 顺序栈的C++代码实现 #include<iostream> using nam... 栈 定义:只能在表的一端(栈顶)进行插入和删除运算的线性表逻辑结构:一对一关系存储结构 顺序栈链栈 运算规则:只能在栈顶运算,且访问结点时依照后进先出(LIFO)或先进后出(FILO)的原则实现方式 入栈出栈读栈顶元素值建栈判断栈空判断栈慢清空栈销毁栈 栈的表示和操作的实现 顺序栈的C++代码实现 #include<iostream> using nam...
- 链栈 链栈的表示 运算是受限的单链表,只能在链表头部进行操作,故没有必要附加头结点。栈顶指针就是链表的头指针。 C++代码实现 #include<iostream> #include<stdlib.h> using namespace std; #define OVERFLOW -2 #define OK 1 #define ERRO... 链栈 链栈的表示 运算是受限的单链表,只能在链表头部进行操作,故没有必要附加头结点。栈顶指针就是链表的头指针。 C++代码实现 #include<iostream> #include<stdlib.h> using namespace std; #define OVERFLOW -2 #define OK 1 #define ERRO...
- 有一个单向链表,请编写一个函数,将这个单向链表反转,并返回反转后的头节点 ''' ''' class LinkedNode: def __init__(self, x): self.val = x self.next = None def reverseLinked(header): if not header or not header.next: return h... 有一个单向链表,请编写一个函数,将这个单向链表反转,并返回反转后的头节点 ''' ''' class LinkedNode: def __init__(self, x): self.val = x self.next = None def reverseLinked(header): if not header or not header.next: return h...
- 下面的语言中哪些语言是动态语言(B ) A.C B.JavaScript C.C++ D.CSS E.Java F.Objective-C 解析 静态语言(强类型语言) 静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。 例如:C++、Java、Delp... 下面的语言中哪些语言是动态语言(B ) A.C B.JavaScript C.C++ D.CSS E.Java F.Objective-C 解析 静态语言(强类型语言) 静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。 例如:C++、Java、Delp...
- 查找的基本概念查找算法的评价指标线性表的查找顺序查找顺序查找的性能分析顺序查找算法特点 折半查找算法描述折半查找性能分析 分块查找(块间有序,块内无序)分块查找性能分析分块查找优缺点 查找的基本概念 查找表:由同一类型的数据元素(或记录)构成的集合静态查找表:查找的同时对查找表不做修改操作(如插入和删除)动态查找表:查找的同时对查找表... 查找的基本概念查找算法的评价指标线性表的查找顺序查找顺序查找的性能分析顺序查找算法特点 折半查找算法描述折半查找性能分析 分块查找(块间有序,块内无序)分块查找性能分析分块查找优缺点 查找的基本概念 查找表:由同一类型的数据元素(或记录)构成的集合静态查找表:查找的同时对查找表不做修改操作(如插入和删除)动态查找表:查找的同时对查找表...
- 写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注... 写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注...
- 链队列 空队列 元素x入队列 元素y入队列 元素x出队列 C++代码实现 /*------链队列基本操作-------*/ /* front指针指向头结点(第一个结点的前一个) rear指针指向最后一个结点 */ #include<iostream> #include<stdlib.h> using namespace std; ... 链队列 空队列 元素x入队列 元素y入队列 元素x出队列 C++代码实现 /*------链队列基本操作-------*/ /* front指针指向头结点(第一个结点的前一个) rear指针指向最后一个结点 */ #include<iostream> #include<stdlib.h> using namespace std; ...
- 快速排序基本思想算法实现算法分析 快速排序 基本思想 任取一个元素 (如第一个) 为中心所有比它小的元素一律前放,比它大的元素一律后放,形成左右两个子表;对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个 算法实现 int Partition(SqList &L, int low, int... 快速排序基本思想算法实现算法分析 快速排序 基本思想 任取一个元素 (如第一个) 为中心所有比它小的元素一律前放,比它大的元素一律后放,形成左右两个子表;对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个 算法实现 int Partition(SqList &L, int low, int...
- 数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。 举个例子,假设有个名为 flatten 的函数可以做到数组扁平化, var arr = [1, [2, [3, 4]]];console.log(flatten(arr)) // [1, 2, 3, 4] 我们最一开始能想到的莫过于循环数组元素,如果... 数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。 举个例子,假设有个名为 flatten 的函数可以做到数组扁平化, var arr = [1, [2, [3, 4]]];console.log(flatten(arr)) // [1, 2, 3, 4] 我们最一开始能想到的莫过于循环数组元素,如果...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签