第四章算法实践
算法第四章实践
1.实践题
算法描述:在一个固定长度的磁带上尽可能多的存放多个长度无序的程序,根据这个可考虑用贪心算法。
贪心策略:由于是存放尽可能多的程序数而不是存放尽可能的程序在磁带的长度,所以先将程序存放在磁带上的长度短的先存进磁带,以达存储程序数量最大化。
代码实现:
2.时间空间复杂度:
时间复杂度:用了一个sort排序函数,时间复杂度为O(nlogn),后面遍历了一遍数组,时间复杂度为O(n),考虑最坏情况,O(nlogn)> O(n),所以该算法的时间复杂度为O(nlgn)。
3.对贪心算法的理解:
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。我认为最关键的也是最难的就是找到贪心策略。
贪心算法的步骤可分为:
- 建立数学模型来描述问题。
- 把求解问题分成若干个子问题。
- 对每一子问题求解,得到子问题的局部最优解。
- 把子问题的局部最优解合成原来解问题的一个解。