【MATLAB高级编程】入门篇 | 向量化编程 2024-06-03 matlab, 算法, 数据结构, 开发语言 49人 已看 在这篇文章里,我们将探讨MATLAB中一个最基本但又非常重要的概念:向量。无论你是初学者还是有经验的用户,理解和掌握向量操作是使用MATLAB进行高效编程的基础。本篇内容都附有演示代码,且注释详细。
如何理解:选择排序中交换可能改变相同元素的相对顺序? 2024-06-03 算法, java, leetcode, 排序算法, 数据结构 70人 已看 算法复杂度:两者在最坏和平均情况下的时间复杂度相同,都是 (O(n^2))。但是选择排序在交换次数上通常比冒泡排序少。实现方式:选择排序每次找到最小(或最大)元素放到已排序部分,冒泡排序则是通过多次相邻元素的比较和交换来排序。稳定性:冒泡排序是稳定排序,选择排序是不稳定排序(因为选择排序中交换可能改变相同元素的相对顺序)。适用场景:在实际应用中,两者的使用较少,通常使用更高效的排序算法如快速排序或归并排序。但在数据量小且对交换次数要求高的情况下,可以考虑选择排序。
leetcode62-Unique Paths 2024-06-03 算法, java, leetcode, 职场和发展, 数据结构 74人 已看 每次只能向下或者向右,我们可以用dp[i][j]表示走到当前的路径,那么dp公式就可以为dp[i][j]=dp[i-1][j]+dp[i][j-1] ,最后注意起始条件,即第一行和第一列的路径数只能是1。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。输入:m = 3, n = 7。问总共有多少条不同的路径?
LeetCode-239.滑动窗口最大值 2024-06-03 算法, leetcode, 职场和发展, 数据结构 73人 已看 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3。滑动窗口的位置 最大值。输入:nums = [1], k = 1。输出:[3,3,5,5,6,7]返回 滑动窗口中的最大值。
数据结构:二叉树与树 2024-05-25 算法, 数据结构 37人 已看 树是一种非线性的数据结构,它是n(n >= 0)个结点的有限集。当n = 0时,称为空树。在任意一棵非空树中应满足:2.1 有且仅有一个特定的称为根的结点。2.2 当n > 1时,其余结点可分为m(m > 0)个互不相交的有限集T1 ……Tm,其中每个集合本身又是一棵树,并且称为根的子树。显然,树的定义是递归的,即在树的定义中又用到其自身,树是一种递归的数据结构。树作为一种逻辑结构,同时也是一种分层结构,具有以下两点特点:2.3 树的根结点没有前驱,除根结点外的所有结点有且只有一个前驱。
《征服数据结构》块状链表 2024-05-28 数据结构 30人 已看 摘要:1,块状链表的介绍2,块状链表的代码实现(Java和C++)1,块状链表的介绍前面我们讲过数组和链表,数组具有 O(1)的查询时间,O(N)的删除,O(N)的插入,而链表具有 O(N)的查询时间,O(1)的删除,O(1)的插入。应该说这两种数据结构都有优缺点,那么这两种数据结构能不能结合起来使用呢?当然是可以的,结合起来就是我们今天要讲的块状数组。前面讲到链表时候,我们知道链表的每个节点只存...
数据结构之链表(算法之初) 2024-05-27 算法, 链表, windows, 数据结构 102人 已看 int value;} ListNode;int value;} ListNode;int value;
数据结构之链表(算法之初) 2024-05-27 算法, 链表, windows, 数据结构 113人 已看 int value;} ListNode;int value;} ListNode;int value;
聊一聊开发语言的基础控制结构 2024-05-28 算法, 数据结构, 开发语言 43人 已看 一、描述下for循环、while循环和do-while循环的区别和用法。在编程中,for循环、while循环和do-while循环是用于重复执行一段代码直到满足特定条件的控制结构。每种循环都有其特定的用途和语法。
日期类的实现 2024-06-03 jvm, 算法, c++, 数据结构, 开发语言 59人 已看 通过上面的代码我们可以看出函数是可以互用的,并且代码中灵活的利用this指针与引用d进行比较,得出最后的是否为真。
聊一聊开发语言的基础控制结构 2024-05-28 算法, 数据结构, 开发语言 37人 已看 一、描述下for循环、while循环和do-while循环的区别和用法。在编程中,for循环、while循环和do-while循环是用于重复执行一段代码直到满足特定条件的控制结构。每种循环都有其特定的用途和语法。
C语言基础——数组(2) 2024-06-03 算法, java, javascript, 数据结构, 开发语言 44人 已看 我们上一章节讲述了一维数组的各种基本语法,明白了一维数组的创建及输入输出以及销毁等,不知道大家有没有想过,数组难道只有一维嘛,有没有更高维,它们又是什么样子的呢,高维数组又有什么作用,那就让我们一起来看看吧。
通俗易懂回溯法求解旅行售货员问题 2024-06-01 算法, java, 数据结构, 开发语言 46人 已看 如果输入的编如果输入的编号不合法,提示用户重新输入,并继续下一次循环。校验两次输入的城市是否相同,提示用户不能输入同个城市,并重新输入。将输入的距离值保存在二维数组disArray的对应位置,同时考虑到距离的无向性,也保存对称位置的值。因此,我们可以在生成路径的过程中,通过比较部分路径的当前距离与已知的最短距离来提前终止一些显然不可能得到更优解的搜索分支,减少搜索空间,提高算法效率。当递归函数返回时,表示当前路径的所有可能性都已探索完毕,此时需要将最后一个添加的城市从路径中移除,以便尝试其他可能性。
力扣 56.合并区间 2024-05-29 算法, java, leetcode, 职场和发展, 数据结构 82人 已看 这道题中,要求合并能合并的区间,并且讲合并之后的结果返回,那么考虑1 2 3哪种情况不能合并,显然是3,即遍历到的区间的开始时间大于结果数组中最后一个区间的结束时间,结果数组中存储的区间已经是把当前便利的区间之前能合并的区间都合并了之后的结果,并且由于初始化的时候就将所有待合并区间按照开始时间从小到大排过序了,所以结果数组中保存的合并之后的区间也是从小到大排序的,自然结果数组中最后一个区间才是唯一有可能和当前数组进行合并的数组。一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
【算法模板】数据结构:树状数组 2024-05-29 算法, 数据结构 39人 已看 树状数组(Binary Indexed Trees)其基本用途是维护序列的前缀和。对于给定的序列a,我们建立一个数组C,其中c[x]保存序列a的区间[x-lowbit(x)+1,x]中所有数的和。事实上,数组c可以看作一个如下图所示的树形结构,图中最下边一行是N个叶节点(N=16),代表数值a[1~N]。如果N不是2的整次幂,那么树状数组就是一个具有同样性质的森林结构。
冒泡排序(经典) 2024-05-30 算法, java, 数据结构, 排序算法, 开发语言 81人 已看 2.i 的初始化为 0,是j的初始化也为 0,注意 j 的终止条件为:j < arr.length - i - 1,是为了防止越界。1.优化的 flag 是为了减少排序次数,如果在一次比较中都没有交换数据,那么这个数组就是有序的。总共由两次循环,外层循环为总共需要比较多少次,一般全部无序的数组,需要比较该数组的长度的值。内层循环,每一次比较需要比较多少次,每一次都比上一次减少一次的次数。我是小辉,24 届毕业生。当下是找工作ing,欢迎关注,持续分享。相邻的两个元素的比较,每次选出一个最大值。