算法概论
文章平均质量分 89
gdouchufu
https://github.com/gdouchufu/Core-Python-Programming
展开
-
第三周作业——顺序查找和二分查找
顺序查找用Java实现顺序查找,代码如下: /** * Sequence Search: 顺序查找 * @param src 从哪个数组里找 * @param low 开始查找的数组下标 * @param high 结束查找的数组下标 * @param target 待查找的数 * @return 待查数在数组里的位置,若找不到返回-1 */ publ原创 2014-03-27 21:06:01 · 860 阅读 · 0 评论 -
第2次实验——算法基本功 与 综合思考
(1)算法基本功——快速排序 对文件 largeW.txt(下载链接)中的数据,应用快速排序算法进行排序,并与冒泡排序、归并排序进行时间比较。体验算法复杂度对设计算法的影响。(2)经典算法面试题(至少选择其中1道题并作答,有自己的思考与理解) 收集一些top软件公司经典算法面试题(有很多公司的经典面试题,可供选择) 白话经典算法序列(个人非常优秀的原创 2014-06-11 23:08:44 · 922 阅读 · 0 评论 -
第1次实验——NPC问题(回溯算法、聚类分析)
(1)八皇后及N皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机原创 2014-06-11 23:02:22 · 867 阅读 · 0 评论 -
第二周作业——RSA算法的实现
算法已学习到第一章"数字的算法",这次对RSA的知识做个总结.作业要求: 计科1111-1114班第二周讲义、课外作业几个基本概念的理解:RSARSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为原创 2014-03-18 08:24:10 · 2553 阅读 · 0 评论 -
第五周作业——Dijkstra算法的实现
作业要求: 对加权图(tinyEWD.txt,mediumEWD.txt),计算从顶点0出发到其他顶点的最短路径,要求输出其从顶点0到每个顶点的路径,以及相应的路径距离。类名:GraphDijkstra。原创 2014-04-08 17:07:52 · 984 阅读 · 0 评论 -
第七周作业1——背包问题
对上文中提到的背包问题提供的表1(数据文件下载Knapsack.txt,第一行为背包总重量15,物品数量5; * 第2-6行,分别为第1-5件物品的重量与价值),W=15,编程计算最终背包所装物品的编号、总重量与总价值。 * 要求能够把构造的二维表格输出到文件KnapsackResult.txt中。博文标题:第7周作业1——背包问题。原创 2014-04-24 07:47:33 · 1273 阅读 · 0 评论 -
第五周作业——有向图强连通分量的编程实现
作业要求: 对tinyDG.txt(http://pan.baidu.com/s/1o6jWtcA)文件所表示的图,输出其反向图中顶点post的逆序表示,并输出每一个强连通分量,输出图的超图(思考,or实现),类名:GraphSSC。原创 2014-04-08 16:49:53 · 1127 阅读 · 0 评论 -
第五周作业——有向图邻接表表示及反向图构造
作业要求: 对tinyDG.txt(http://pan.baidu.com/s/1o6jWtcA)文件所表示的图,输出其邻接表表示 与 反向图的邻接表表示。类名:GraphReverse。原创 2014-04-08 10:20:22 · 2342 阅读 · 1 评论 -
第一周作业——《算法概论》思维导图
XMIND 是一款非常实用的商业思维导图(Mindmap)软件,应用全球最先进的Eclipse RCP 软件架构,全力打造易用、高效的可视化思维软件,强调软件的可扩展、跨平台、稳定性和性能,致力于使用先进的软件技术帮助用户真正意义上提高生产率。下载地址:http://www.xmind.net本学期学习"算法设计与分析", 选用的教材是>(清华大学出版社). 为了纵览全局,理清学习思路原创 2014-03-12 16:59:29 · 1709 阅读 · 1 评论 -
第四周作业——有向无环图的判断
作业要求:按照教材中对有向无环图(DAG)的定义与判断方式,对图(tinyDG.txt),编程实现并判断该G是否有环,进一步找出环的路径(如:v1-v5-v6-v1)。类名:GraphDAG。(未完待续.........)原创 2014-04-01 21:59:52 · 2908 阅读 · 0 评论 -
第四周作业——无向图的DFS算法
作业要求:按照教材中的定义方式,完整实现图的DFS算法,给定图数据文件(tinyG.txt),能够输出DFS的节点遍历结果,及每个节点的Pre和Post值,和连通分量的个数与节点构成。类名:GraphDFS。用java实现无向图的DFS算法,代码如下:/** * 无向图的DFS算法 */public class GraphDFS { private boolea原创 2014-04-01 21:44:34 · 2049 阅读 · 0 评论 -
第四周作业——图的表示
作业要求:给定图数据文件(tinyG.txt),计算得到图的邻接矩阵,并把邻接矩阵保存到文件(tinyG_matrix.txt)中。类名:GraphRepresentation。用java实现无向图的表示,代码如下:/** * 无向图的表示 */public class GraphRepresentation{ //vertex,顶点数目 private原创 2014-04-01 17:27:39 · 1120 阅读 · 1 评论 -
第一周作业——计算两个数的最大公约数
201111621308:class Max{ public static void main(String[] args){ Max a = new Max(); a.go(); }}void go(){ int a = 12 , b = 8 , c ;}完善后的程序:package gdou.lcf.arithmetic;import ja原创 2014-03-07 22:28:45 · 1477 阅读 · 0 评论 -
第六周作业1——利用哈夫曼编码英文字母表
作业要求: 对教材P167中习题5.18,思考并完成问题a-d。原创 2014-04-14 15:56:19 · 3315 阅读 · 0 评论 -
第三周作业——冒泡排序和归并排序
冒泡排序用Java实现冒泡排序,代码如下: /** * 冒泡排序:比较相邻的元素。如果第一个比第二个大,就交换他们两个。 * @param array 要排序的数组 * @return 排序号后的数组 */ public static int[] BubbleSort(int[] array){ if(array == null){ throw new Ru原创 2014-03-26 21:50:01 · 1148 阅读 · 0 评论