摘要: 荷兰国旗问题 上方的图片便是一个荷兰国旗,从图中我们可以很清楚的看出它的特点,它有三个区域组成,即红,白,蓝。好,现在我们的问题出来了。现在我们面前有一张桌子,桌子上整齐的摆放着红色,白色,蓝色三种线条,但他们的顺序是凌乱的。要求是:用一个算法把这些线条挑出来重新摆放顺序,最后的结果就像上图的荷兰国旗,红色在上,白色在中间,蓝色在最下面。另外,要求在O(n)的复杂度下,使移动次数最少。算法分析如下:荷兰国旗问题其实是一个排序问题。可以将红,白,蓝3种颜色分别用数字0、1和2表示,并使用一个数组来存储它们。将相同颜色的线条归为一类就相当于将数组中的数组按大小进行排序,只不过数组里存储的数值只有. 阅读全文
posted @ 2013-04-11 16:06 小菜美妞成长中 阅读(573) 评论(0) 推荐(0) 编辑
摘要: /*大整数乘法问题:应用数组解决,由于计算机的精度是有限的,因此单纯使用程序设计语言提供的原子数据类型来完成两个大整数的乘法显然是不切实际的。可以考虑用两个数组来分别存储一些大于10的整数,这些数字按顺序排列在一起,分别表示一个大整数的每一位上的数字,于是大整数的储存问题就解决了。然后按照基本乘法规... 阅读全文
posted @ 2013-04-11 11:15 小菜美妞成长中 阅读(462) 评论(0) 推荐(0) 编辑