首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Go语言数据结构和算法
H_拾忆
创建于2025-11-20
订阅专栏
数据结构和算法是了解一门语言的语法最好的方式.
等 1 人订阅
共20篇文章
创建于2025-11-20
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Go语言数据结构和算法(三十九)动态规划背包问题
背包问题是经典的优化问题,涉及在重量限制下选择价值最大的物品组合。文章介绍了问题定义、输入数据、算法选择(如动态规划和贪心算法)、实现步骤(包括测试和优化)以及典型应用场景.
Go语言数据结构和算法(三十八)动态规划Floyd-Warshall算法
本文介绍了动态规划技术及其典型应用。动态规划通过将复杂问题分解为重叠子问题来优化求解,适用于具有最优子结构特性的问题。重点分析了Floyd-Warshall算法.
Go语言数据结构和算法(三十七)回溯算法
回溯算法是一种递归解决问题的技术,通过逐步构建并验证解决方案,适用于组合优化问题。文章详细介绍了回溯算法的基本步骤(验证可行解、穷尽路径、回溯探索)及其在N皇后问题、数独求解和哈密顿循环等经典问题.
Go语言数据结构和算法(三十六)平衡二叉树
本文介绍了平衡二叉树的概念、实现方法和应用场景。同时给出了Go语言实现示例,演示了如何将有序数组转换为平衡二叉树,以及如何检查二叉树是否平衡。
Go语言数据结构和算法(三十五)Kadane算法
Kadane算法是解决最大子数组问题的有效算法.该问题是在整数数组中找到具有最 大和的连续子数组任务. 1.步骤: 1.1将两个变量maxSoFar和maxEndingHere初始化为数组的第一个元素
Go语言数据结构和算法(三十四)分治算法
分治算法是将一个巨大的输入分解成若干个小块.在每个小块上解决问题.然后将分段 解决方案合并为全局解决方案. 1.步骤: 分解:将原始问题分解成一组子问题. 解决子问题:递归的单独解决每个子问题. 合并
Go语言数据结构和算法(三十三)霍夫曼编码
霍夫曼编码是一种特殊类型的最佳前缀编码.通常用于无损数据压缩.一种无损数据压 缩算法.该算法为输入字符分配可变长度代码.分配的代码长度基于相应字符出现的频 率.出现最频繁的字符得到最小的代码.出现最不
Go语言数据结构和算法(三十二)最短路径
最短路径是在图中找到两个顶点之间的路径以使其组成的边的权重之和最小化的问 题.特性如下. 最短路径的所有子路径也必须是最短路径. 如果存在两个节点A和B之间的最短路径长度.那么贪婪的选择B到C之间长度
Go语言数据结构和算法(三十一)Kruskal算法
Kruskal算法用于为给定图生成最小生成树.Kruskal算法按边权重的递增顺序对所有 边进行排序..并且仅当所选边不形成任何循环时才继续向树中添加节点.此外.它首先 选择权重最低的边.最后选择权重
Go语言数据结构和算法(三十)最小生成树Prim算法
最小生成树是连接的无向图中的边子集.它将所有点连接在一起.没有任何循环.并且具 有最小可能的总边权.MST是一个生成树.其边权重之和尽可能小. 生成树的代价是树中所有边的权重之和.可以有很多颗生成树.
Go语言数据结构和算法(三十)贪心简介
1.算法定义: 贪心算法是一种用于优化问题简单直观的算法.该算法在尝试找到解决整个问题的总体最佳方法时.会在每个步骤中找出最佳选择.贪心算法在某些问题非常成功.如用于压缩数据的霍夫曼编码.或用于寻找图
Go语言数据结构和算法(二十八)插值搜索算法
插值搜素是对实例二分搜索的改进.其中排序数组中的值是均匀分布的.二分搜索总是对中间元素进行检查.插值搜索可能会根据正在搜索的键的值去查找不同的位置.如果键的值更接近最后一个元素.则插值搜索很可能会向末
Go语言数据结构和算法(二十七)跳转搜索算法
跳转搜索是一种用于有序数组的搜索算法.其基本思想是通过固定步骤向前跳转或跳 过某些元素来检查更少的元素. 跳转搜索的步骤是将数组长度的平方根跳跃进行查找.直到找到大于或等于目标的值. 然后实现一个反向
Go语言数据结构和算法(二十七)二分搜索
二分搜索是一种在有序数组使用的算法.它通过重复将搜索间隔一分为二进行搜索.二 分搜素算法的思想是利用数组排序的信息.将事件复杂度降低到O(logn). 1.步骤: 1).将整个数组的中间元素作为搜索键
Go语言数据结构算法(二十五)堆排序
堆排序算法是一种流行且高效的排序算法.原理是将数组的元素可视化为一种特殊的完全二叉树.称为堆. 1.使用场景: 大型数据集:堆排序相对于大型数据集是有效的.因为其他算法开销对性能影响比较大. 内存分配
Go语言数据结构和算法(二十四)基数排序算法
基数排序是一种排序算法.它通过对相同位置的各个元素进行分组来对元素进行排序.然后根据元素的递增或递减顺序对元素进行排序. 1.使用场景: 大型数据集: 基数排序算法对于大型数据集非常有效.因为其他算法
Go语言数据结构和算法(二十二)计数排序算法
计数排序是一种排序算法.它通过计算数组中每个唯一元素的出现次数对数组元素进行排序.计数存储在辅助数组中.排序是通过将计数映射为辅助数组的索引完成的. 1.使用场景: 对大型数组进行排序: 计数排序算法
Go语言数据结构和算法(二十一)快速排序
快速排序是一种基于分治算法的排序算法.快速排序通过选择一个元素为枢轴.并围绕所选枢轴对给定数组进行分区. 1.使用场景: 大型数据集: 快速排序算法对于大型数据集很有效.因为其他算法的开销对性能的影响
Go语言数据结构和算法(二十)归并排序
归并排序是基于分治算法最流行的的排序算法之一.一个问题被分成多个子问题.每个子问题都是单独解决的.最后.将子问题组合起来形成最终解决方案. 1.使用场景: 大型数据集: 归并排序对于大型数据集很有效.
Go语言数据结构和算法(十九)冒泡排序
冒泡排序是一种排序算法.它通过比较两个相邻的算法并将它们交换.直到处于预期的顺序.就像水中上升到水面的气泡的运动一样.其中每个元素在每次迭代中都会移到最后. 1.使用场景: 小数据集:冒泡排序对小数据