随笔分类 - 算法
摘要:来自:【数据结构与算法分析——C语言描述】练习2.19 问题描述: 大小为 N 的数组 A ,其主要元素是一个出现次数超过 N/2 的元素(从而这样的元素最多有一个)。例如,数组 3,3,4,2,4,4,2,4,4 有一个主要元素4,而数组 3,3,4,2,4,4,2,4 没有主要元素。 题目给了一
阅读全文
摘要:来自:【数据结构与算法分析——C语言描述】练习2.12 有关这 4 个子序列算法的思路,都是源于 最大子序列和问题 的延伸,具体请参考 【数据结构与算法分析——C语言描述】第二章总结 算法分析 中的 “最大子序列和问题”部分。 下面是 4 个子序列算法的代码实现。 最大子序列和 1. 穷举法,时间复
阅读全文
摘要:来自:【数据结构与算法分析——C语言描述】练习2.14 问题描述:Eratosthenes筛是一种用于计算小于N的所有素数的方法。我们从制作整数2到N的表开始。我们找出最小的未被删除的整数i,打印i,然后删除i, 2i, 3i, ..., 当i > √N时,算法终止。 首先,没必要做2到N的表,在一
阅读全文
摘要:来自:【数据结构与算法分析——C语言描述】练习2.13 问题描述: a. 编写一个程序来确定正整数N是否是素数。 b. 你的程序在最坏的情形下的运行时间是多少(用N表示)? c. 令B等于N的二进制表示法中的位数。B的值是多少? d. 你的程序在最坏的情形下的运行时间是多少(用B表示)? e. 比较
阅读全文
摘要:来自:【数据结构与算法分析——C语言描述】练习2.7 问题描述:假设需要生成前N个自然数的一个随机置换。例如,{4,1,2,5,2} 和 {3,1,4,2,5} 就是合法的置换,但 {5,4,1,2,1} 却不是,因为数1出现了两次而数 3 缺没有。这个程序常常用于模拟一些算法。我们假设存在一个随机
阅读全文
摘要:算法 算法(algorithm)是为求解一个问题需要遵循的、被清楚地指定的简单指令的集合。 数学基础 四个定义 1. 大O表示法: 如果存在正常数 c 和 n0 使得当 N ≥ n0时,T(N) ≤ cf(N),则记为T(N) = O(f(N))。 (描述了T(N)的相对增长率小于等于f(N)的相对
阅读全文
摘要:这一章主要复习了一些数学知识,像指数、对数、模运算、级数公式;还有2种证明方法,归纳假设法和反证法。所幸以前学过,重新拾捡起来也比较轻松。 简要地复习了递归,提出了编写递归例程的四条基本法则:
阅读全文
摘要:来自:【数据结构与算法分析——C语言描述】练习1.4 题目:C提供形如 #include filename 的语句,它读入文件filename并将其插入到include语句处。include语句可以嵌套;换句话说,文件filename本身还可以包含include语句,但是显然一个文件在任何链接中都不
阅读全文
摘要:来自:【数据结构与算法分析——C语言描述】练习1.3 思路:取得一个数的整数部分和小数部分。整数部分直接用类型强制转换,然后用数减去整数部分得到小数部分。 1. 打印整数部分; 至于printDigit(),感觉有点鸡肋。为了迎合题目,加上了。 2.如果小数部分不为0,则将小数点后六位转换成整数部分
阅读全文
摘要:来自:【数据结构与算法分析——C语言描述】练习1.2 问题描述:编写一个程序求解字谜游戏问题。 书上给出了2种比较直观的算法。 第一种:对单词表中的每个单词,我们检查每一个有序三元组(行,列,方向),验证是否有单词存在。但坏处是这将导致大量嵌套的for循环。 第二种:对于每一个尚未进行到字谜最后的有
阅读全文
摘要:来自:【数据结构与算法分析——C语言描述】练习1.1 问题描述:编写一个程序解决选择问题。令k = N / 2。画出表格显示你的程序对于N为不同值时的运行时间。 (设有一组 N 个数确定其中第 k 个最大者,称选择问题(selection problem)) 思路:读入前 k 个数到临时数组 tmp
阅读全文

浙公网安备 33010602011771号