![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 63
折叠的饼干
这个作者很懒,什么都没留下…
展开
-
小于n的最大数
给一个数组nums=[5,4,8,2],给一个n=5416,让你从nums中选出一些元素,使得组成的数字是小于n的最大数。该位之前不变,该位改为小于n的该位的最大值,其余位为nums里最大值。遍历n的各位上的数,找到数组中不存在的数的最高位。如果都存在,则修改最低位。思路贪心+二分查找。......原创 2022-07-26 17:31:19 · 1565 阅读 · 2 评论 -
快速排序详解
一.问题描述及求解在众多的排序算法中,快速排序因其平均性能非常好而得到广泛应用,它的期望时间复杂度是O(nlgn)求解步骤:快排采用了分治的思想,具体过程可分为三步:1.将大问题分解为子问题:首先选取基准元素作为排序过程的一个分界点,在这里我们可选择首位元素或末尾元素或中间元素等作为基准元素,在对不同序列进行排序时,基准元素的选择对该算法的复杂度会有一定影响影响。之后将小于等于基准元素的值放在左边,大于基准元素的值放在右边,注意此时等于基准元素的值位置不一定按照先前顺序,因此快排算法并不稳定。2原创 2021-05-04 20:25:48 · 517 阅读 · 0 评论 -
基于动态规划方法求解0-1背包等问题
基于动态规划方法求解0-1背包等问题一.题目n个物品和1个背包。对物品i,其价值为vi,重量为wi,背包容量为W。如何选取物品装入背包,使背包中所装入的物品的总价值最大?其中,wi, W都是正整数。二.分析首先明确背包容量的变化对能装入物品的总数存在一定的限制关系,大多数情况下n个物品不一定都能装入背包(若都能装入,则都装入时必定为价值最大)。其次需要明确,如果按照贪心算法,求解到的只是局部最优,1.价值最大的先装入背包2.重量最轻的先装入背包3.价值与重量的比值最大的先装入背包都不一定得原创 2021-04-01 09:23:11 · 2994 阅读 · 0 评论 -
基于分治法的循环日程表算法
基于分治法的循环日程表算法一.题目设有 n=2^k 个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表:(1) 每个选手必须与其他 n-1 个选手各赛一次。(2) 每个选手一天只能赛一次。(3) 循环赛一共进行 n-1 天。 按此要求可将比赛日程表设计成有 n 行和 n-1 列的日程表。在表中的第 i 行和第 j 列处填入 第 i 个选手在第 j 天所遇到的选手。二.思路看到问题的第一反应是在求全排列的满足条件的子集,但是全排列较多且选择适当的子集也比较困难,该问题有很多解,但求出原创 2021-03-30 20:04:25 · 2057 阅读 · 0 评论