算法
文章平均质量分 51
卑微小钟
君当终日乾乾,熬过万丈孤独,踏过万水千程,与最好的自己温柔重逢。
展开
-
常用的查找算法时间和空间复杂的对比
线性查找的空间复杂度是O(1),而二分查找的空间复杂度也是O(1),它们都使用常量额外空间。二分查找的时间复杂度为O(log n),要求数据必须有序。线性查找的时间复杂度为O(n),适用于未排序的数据。原创 2023-09-28 08:53:15 · 2565 阅读 · 0 评论 -
常用排序算法时间与空间复杂度
不同排序算法具有不同的时间和空间复杂度特征,因此在选择排序算法时需要考虑数据规模和性质。在平均情况下,快速排序、归并排序和堆排序通常是性能最好的排序算法,其时间复杂度为O(n log n)。冒泡排序、选择排序和插入排序适用于小规模数据或在某些情况下。计数排序适用于元素范围有限的情况,它的性能可以达到线性时间。原创 2023-09-28 09:00:00 · 2468 阅读 · 0 评论 -
动态规划-规划兼职工作
要点完成第i份兼职获得的最大报酬=MAX(考虑前一份(i-1)兼职的最大报酬,第i份兼职开始时间前能完成的兼职的最大报酬+第i份兼职的报酬)。在计算时考虑当前兼职时,要用到之前子问题的解时,我们直接查兼职与最大薪资表dp就可以简化运算。算法性能分析时间复杂度:O(nlogn),其中 n 是兼职工作的数量。排序需要 O(nlogn),遍历 + 二分查找需要 O(nlogn),因此总时间复杂度为 O(nlogn)。**空间复杂度:O(n)。**需要 O(n) 的空间来保存dp。现实意义。原创 2023-02-25 22:50:12 · 8671 阅读 · 0 评论 -
乘船问题(贪心算法)
乘船问题:有N个人,第I个人重量为wi,每艘船的载重上限为C,且最多乘2人。用最少的船装载所有人,求需最少的船数量。原创 2023-02-25 22:46:55 · 9068 阅读 · 0 评论 -
动态规划-算法设计
动态规划和分治法类似,基本思想将待求解的问题分解成若干子问题,先求解子问题,然后结合子问题的解得到原问题的解。与分治法不同的是适合动态规划法求解的问题经过分解得到的子问题往往不是相互独立的。设计动态规划算法时第一步通常是要刻画最优解的结构。当问题的最优解包含子问题的最优解时,称该问题有最优子结构性质。在动态规划算法中,利用问题的最优子结构性质,以至底向上的方式递归地从子问题的最优解逐步构造出整个问题的最优解。可用动态规划算法求解的问题应具备的另一基本要素是子问题的重叠性质,在使用递归算法自顶向下解此问题时,原创 2022-10-24 20:58:04 · 13112 阅读 · 0 评论 -
java抠图片文字或签名
第一步 遍历像素点第二步 判断像素是否是黑色或者指定颜色第三步 统计 选取图像的像素点最小坐标或最大坐标第四步 新建画布(长度和高度=最大像素点-最小像素点)第五步 画图原创 2022-06-23 10:54:57 · 23914 阅读 · 0 评论