找回密码
 欢迎注册
查看: 24613|回复: 9

[讨论] 一个和桶排序相关的问题,整理水果问题

[复制链接]
发表于 2008-9-12 17:03:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
这个问题来自我的一个桶排序算法问题。为了便于描述,我们用水果做比喻。
现有n个颜色不同的盒子,n种颜色不同的水果,每个盒子恰好能够装满与其颜色相同的水果。各个盒子的编号为1,2,3,..n, 相应的这个盒子的颜色代号也为1,2,3..n.   现在所有的水果混在一起,装满了n个盒子(也就是说,每个盒子有许多种颜色不同的水果)。现在需要将水果各就各位。步骤如下:

1. 从第1盒子开始,对其中的水果进行整理,挑出颜色颜色代号不等于1的水果放在备用盒子中,等于1的水果不动。。

2. 接着其他盒子,为便于描述,定义当前的盒子为i号。对于i号盒子的某个水果,假定其颜色代号为x,
则,如果x 等于i,这个水果保留不动,
    如果x 小于i, 将这个水果放在第x号盒子,容易看出,此时x号盒子一定有空间。
    如果x 大于i, 将这个水果放在备用盒子。

3. 当所有的盒子中的水果都整理完毕后,再整理备用盒子中的水果,根据其颜色号,放入相应的盒子。

问题,备用盒子的容量至少等于所有盒子容量的多少时,可以按此方法,整理水果。

我得到的一个结论是60%,但是我不知道对错,也无法证明。谁能给出正确的结论和证明过程。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-9-12 17:07:36 | 显示全部楼层
补充一点,所有的水果都一样大。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-9-12 20:07:52 | 显示全部楼层
感觉有点像玩“空挡接龙”。

问一下:
各种水果是一样多吗?盒子一样大吗?
水果存取无序吗?(即:可从盒子任意位置取放)

我的理解是:
各种水果可能不一样多(按题意,对应的盒子也不一样大),
水果可存取无序(毕竟是“盒子”,而不是狭长的“小抽屉”)。

应该没错吧?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-9-13 07:29:10 | 显示全部楼层

回复 3# gxqcn 的帖子

本来这个问题是解决桶排序问题的,对于桶排序,数据(水果)是可以任意存取的。但是我又想近可能的少用辅助存储空间,才提出这个问题。当时没有解决。昨天在公交车上站了大约10几分钟。突然想明白了,应该是辅助盒子的容量和所有盒子的容量一样大,才能解决任意分布的水果的整理问题。我们可以举出这样一个例子来说明一下。
  假设所有的盒子都一样大(即每种颜色的水果都一样多),共有n个盒子,对于前n-1个盒子,第i个盒子中的所有水果的颜色代号都是i+1,第n个盒子中的水果的颜色代号是1.按照整理水果的规则,在整理前n-1个盒子是,需要将所有水果放入备用盒子,因此备用盒子的大小至少为总容量的n-1/n, 当n趋于无穷大时,备用盒子所需容量的趋于100%。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-9-13 08:22:49 | 显示全部楼层
这个构造作得蛮好的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-9-13 18:53:38 | 显示全部楼层
假设第一个盒子有1个1号的,1个2号的,8个其他的
同样道理第二个也是

假设有10个盒子

我们可以证明,这么假设是合理的
那整理2号时,将需要16个空间,对不对?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-9-13 18:54:45 | 显示全部楼层
所以,你的辅助空间将很大
呵呵
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-9-16 20:48:02 | 显示全部楼层
原帖由 无心人 于 2008-9-13 18:53 发表
假设第一个盒子有1个1号的,1个2号的,8个其他的
同样道理第二个也是

假设有10个盒子

我们可以证明,这么假设是合理的
那整理2号时,将需要16个空间,对不对?

1.不太明白你在6#的描述。
2.关于辅助空间的最大值,我在4#已经得出结论,即所需的辅助空间的最大尺寸等于原始待排序的数据的尺寸。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-9-16 20:57:11 | 显示全部楼层
我是以具体例子说明
你这么做辅助空间将很大
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-9-16 23:03:36 | 显示全部楼层
不错,辅助空间是很大,这已经不满足我最初提出的条件。但是到目前为止,很难想出,占用空间少并且速度又快的算法。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-18 20:18 , Processed in 0.047015 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表