算法第四章上机实践报告
Posted wen-05
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法第四章上机实践报告相关的知识,希望对你有一定的参考价值。
一、程序存储问题
1、实践题目及问题描述
2、算法描述
这一道题其实就简单的对输入的各程序长度进行排序,然后在循环里进行叠加,后通过判断是否超过长度为L的磁带,若超过则将可存储的数目输出,若还可存储,则循环继续。
3、算法时间及空间复杂度分析(要有分析过程)
算法时间复杂度为O(n),用了一个for循环依次存储最短程序。
空间复杂度为O(1),没有申请额外的空间。
二、删数问题
1、实践题目及问题描述
2、算法描述
这一道题最主要注意的问题就是不是把最大的数删去就好,要注意高位上的数对数值大小的影响更大。故而,该题的贪心思想是通过高位与下一位的比较,若高位的数值大于下一位,则将高位删去,然后整个数组左移,len--。第二个要注意的便是,该题的输入,应用字符串进行存储,后通过b[i] = a[i]-‘0‘;将字符串里一个一个元素存进int型的新数组。第三个要注意的就是删去处在高位的“0”,通过如下代码实现:
3、算法时间及空间复杂度分析(要有分析过程)
算法时间复杂度为O(n^3),用了三个循环分别就删几个数、比较、左移进行循环。
空间复杂度为O(n),空间复杂度需要一个String字符串长度。
三、最优合并问题
1、实践题目及问题描述
2、算法描述
这一道题要注意不只是把输入的待合并序列的长度进行比较,在进行m+n-1后还要再进行一次排序,以得出新的待合并序列的排序,从而得到最优的最多次比较次数计算和最少比较次数计算。
算法就是首先设定两个数组存好待合并序列的长度,后对两个数组进行升序排序。对于计算最少比较次数,其代码实现如下:
3、算法时间及空间复杂度分析(要有分析过程)
算法时间复杂度为O(n),用了一个for循环来进行。
空间复杂度为O(2n),空间复杂度需要2个数组存储。
心得体会
在越来越多次的结对编成后,发现自己对各章的算法方法掌握的更为牢固,且在分析问题方面更加的严谨和全面。针对贪心算法,也能更好地发现反例,然后在讨论中不断发现最优子结构。继续加油,好好打题的同时也多多考虑时间和空间复杂度。
以上是关于算法第四章上机实践报告的主要内容,如果未能解决你的问题,请参考以下文章