算法设计与分析
文章平均质量分 56
Issme
0033 7788
展开
-
贪心算法求解n个整数连接成最大整数(python)
首先想到的是对n个整数按大小进行排序,如果只考虑首位会出现结果错误的情况,需要对此时的贪心策略进行改进,所以用到了自定义比较大小的方法。例如两个数字3、31,组合会有两种情况:331>313,为求最大整数,我们选择后者。这里我们用到的是自定义排序规则,即functools.cmp_to_key(),按照思路中的排序规则进行编程求解,对自定义的cmp函数进行包装,赋值给sorted函数中的关键字参数key,实现想要的排序效果。例如:n=4时,4个整数21,8,901,6连成的最大整数为9018621。原创 2023-09-20 22:32:30 · 434 阅读 · 1 评论 -
分治法设计比赛日程表
按照分治策略,将所有参赛的选手分为两部分,n=2^k个选手的比赛日程表就可以通过为n/2=2^(k-1)个选手设计的比赛日程表来决定。递归地进行分割直到只剩下2个选手。原创 2023-10-12 17:57:17 · 117 阅读 · 0 评论 -
贪心法解币值统计问题
币值统计问题:已知各种币值(如100、70、50、20、10、5、2、1),对于给定的整数(比如140),确定每种币值的张数,使得所需的总张数最少。原创 2023-11-15 20:42:28 · 175 阅读 · 0 评论 -
利用概率算法和回溯法求解n皇后问题
回溯法思想即将第i个皇后摆放在第i行,从1开始,每个皇后都从第1列开始尝试。判断在该列摆放皇后是否与前面的皇后有冲突,如果没有冲突,则在该列摆放皇后,并置放下一个皇后;如果有冲突,则考虑下一列。如果该行没有合适的位置,回溯到上一个皇后,在原来位置的下一个位置上继续尝试摆放皇后,直到找到所有合理摆放方案。但是当皇后数量较多时,仅仅使用回溯法非常耗时,所以考虑使用概率算法随机置放皇后。如果皇后全部使用概率算法放置,随机性导致效率不是很高,所以选择使用lv算法放置前sv个皇后,剩下的皇后采用回溯法放置。原创 2023-11-15 20:30:54 · 30 阅读 · 0 评论