编程之美
文章平均质量分 79
龙少爷_阿呆
燕山大学硕士 研究XML关键字查询 关注数据结构和算法 java C/C Linux
展开
-
编程之美1:快速找出故障机器
题目:假设一个机器只存储一个标号为ID的记录,假设每份数据保存2个备份,这样就有2个机器存储了相同的数据。其中ID是小于10亿的整数问题1、在某个时间,如果得到一个数据文件ID的列表。是否能够快速的找到这个表中仅出现一次的ID?即快速找出出现故障的机器存储的数据ID。问题2、如果有两台机器死机呢?(假设同一个数据的俩个备份不会同时丢失,即列表中缺少的是两个不等的ID)扩展题转载 2013-10-01 14:42:39 · 1460 阅读 · 0 评论 -
编程之美3:最大公约数问题
解法一:(辗转相除法)假设用f(x, y)表示x,y的最大公约数,取k = x/y,b = x%y,则x = ky + b。如果一个数能够同时整除x和y,则必能同时整除b和y;而能够同时整除b和y的数也必能同时整除x和y,即x和y的公约数与b和y的公约数是相同的,其最大公约数也是相同的,则有f(x, y)= f(y, y % x)(y > 0),如此便可把原问题转化为求两个更小数的最大原创 2013-10-01 15:31:35 · 1924 阅读 · 0 评论 -
编程之美2:精确表达浮点数
摘自编程之美 在计算机中,使用float或者double来存储小数是不能得到精确值的。如果你希望得到精确计算结果,最好是用分数形式来表示小数。有限小数或者无限循环小数都可以转化为分数。比如:0.9=9/100.333(3)=1/3(括号中的数字表示是循环节)当然一个小数可以用好几种分数形式来表示。如:0.333(3)=1/3=3/9给定一个有限小数或者无限循环小数,你能否以原创 2013-10-01 15:05:45 · 1911 阅读 · 0 评论 -
编程之美4:求数组中的最大值和最小值
方法1:暴力方法 遍历一遍数组,比较2*N次求出最大值和最小值方法2:改进方法 (破坏了原数组) 遍历一遍数组使得下标为偶数的元素较下标为奇数的元素大,再分别求出最大值和最小值 比较次数为3*N/2次方法3:改进方法 (不破坏原数组) 遍历一遍数组将相邻元素中较大值和nMax比较,将较小值和nMin比较原创 2013-10-08 15:57:43 · 18092 阅读 · 1 评论