算法第二章上机实践报告

  1. 实践题目名称:派
  2. 问题描述:给定两个整数n和f,分别代表派的数量,f+1表示需要分得派的人数。随后给出每个派的体积,要求每人分得的派体积相同,且分得的派只能来自一个派,求每人所能分得的最大派的体积。
  3. 算法描述:我们可以得知分得的派体积在(0,最大派体积]之间,因此,我们可以采用二分法一步步找到最优的答案。如果中间的体积是存在的派里能分得的,我们就可以把体积范围缩小到右半部分,如果不满足条件,就可以把范围缩小到左半部分,直到体积范围小于1e5,此时的体积便能满足最终条件。
  4. 算法时间及空间复杂度分析(要有分析过程)

     算法时间复杂度:输入是o(n),二分搜索是n(logn),fly函数是n,所以算法的时间复杂度是o(n)。

     算法空间复杂度:因为代码里除了已有的空间存在,没有新增的所需空间,因此空间复杂度为o(1)。

   5.心得体会(对本次实践收获及疑惑进行总结):在这道题目里,我没有想到使用二分算法进行求解,因此只能查看题解。得知在某个区间求特定值的问题可以用二分算法来做,也算是一大收获。

posted @ 2020-10-03 23:30  周以  阅读(123)  评论(0编辑  收藏  举报