程序存储问题 题目: 解析: 这道题思路非常简单,就是选取最小的那几个程序放到磁盘里面,直到放不下为止。用贪心算法的思路来说,就是每个子问题都选取当前最小的程序,最终会得到整体的最优解。 由于使用sort函数,该算法的时间复杂度为O(nlogn);由于没有开辟新空间,所以空间复杂度为O(1)。 具体 ...
分类:
编程语言 时间:
2019-11-17 18:16:45
阅读次数:
112
这次的实践是第四章贪心算法的实践题目。 问题描述: 4-1 程序存储问题 (90 分) 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给 ...
分类:
编程语言 时间:
2019-11-17 14:29:04
阅读次数:
73
各种排序算法所需辅助空间 1、 所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1); 2、 快速排序为O(logn ),为栈所需的辅助空间; 3、 归并排序所需辅助空间最多,其空间复杂度为O(n ); 4、链式基数排序需附设队列首尾指针,则空间复杂度为O(rd )。 ...
分类:
编程语言 时间:
2019-11-16 21:32:40
阅读次数:
74
1、从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 题目解析: O(1) 额外空间是指空间复杂度。空间复杂度(Space Compl ...
分类:
其他好文 时间:
2019-11-16 19:20:32
阅读次数:
54
第四章实践报告 1.实践题目 4-3 最优合并问题 (100 分) 题目来源:王晓东《算法设计与分析》 给定k 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。 假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较。试设 计一个算法确定合并这个序列的 ...
分类:
其他好文 时间:
2019-11-16 17:48:30
阅读次数:
70
算法核心——空间复杂度和时间复杂度超详细解析 一、什么是算法 算法: 一个有限指令集 接受一些输入(有些情况下不需要收入) 产生输出 一定在有限步骤之后终止 每一条指令必须: 有充分明确的目标,不可以有歧义 计算机能处理的范围之内 描述应不依赖于任何一种计算机语言以及具体的实现手段 其实说白了,算法 ...
分类:
编程语言 时间:
2019-11-14 10:05:51
阅读次数:
91
分析程序存储问题。内容包括: 实践题目 问题描述 算法描述(说明你的贪心策略,并且参考会场安排问题,利用反证法证明贪心选择和最优子结构性质) 算法时间及空间复杂度分析(要有分析过程) 心得体会(对本次实践收获及疑惑进行总结) 1.实践题目: 4-1 程序存储问题 2.问题描述: 设有n 个程序{1, ...
分类:
编程语言 时间:
2019-11-14 10:05:06
阅读次数:
69
时间复杂度O(n),空间复杂度O(1)。 简单的问题两种不同的思路。 代码: ...
分类:
其他好文 时间:
2019-11-11 21:36:30
阅读次数:
154
什么是算法?算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰命令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可用空间复杂度与时间复杂度来衡量。这两段代码都可以称
分类:
编程语言 时间:
2019-11-10 20:57:21
阅读次数:
78