我正在努力在星火中实现同等高度的旋转。我面临的主要问题是,我的实现是线性的,不具有可伸缩性。
我想过一种方法,但我认为我的设计效率很低:
首先,我根据必须对其进行绑定的列对数据集进行排序。然后,我将其发送到一个函数,该函数将bin号分配给特定的值。
有人能从不同的角度建议如何处理这个问题吗?
anim wt
1 1 181.0
2 2 179.0
3 3 180.5
4 4 201.0
5 5 201.5
6 6 245.0
7 7 246.4
8 8 189.3
9 9 301.0
10 10 354.0
11 11 369.0
12 12 205.0
13 13 199.0
14 14 394.0
15 15 231.3在绑定(等高)后,"wt“列应被指定为如下所示的bin值。
anim wt wt2
1 1 181.0 1
2 2 179.0 1
3 3 180.5 1
4 4 201.0 2
5 5 201.5 2
6 6 245.0 2
7 7 246.4 3
8 8 189.3 1
9 9 301.0 3
10 10 354.0 3
11 11 369.0 3
12 12 205.0 2
13 13 199.0 1
14 14 394.0 3
15 15 231.3 2程序应该根据wt的值对数据集进行排序,然后将其划分为回收箱,将相同数量的元素放入每个桶中。
发布于 2015-05-05 18:07:26
这的确是一个很难回答的问题。没有那么多的方法可以有效地排序,更少的方法可以很容易地被分发。我想你应该能够做一些类似于合并排序的事情,比如说,通过划分你的N个条目集,直到你得到N/K条目的块,然后你把它排序并划分成K个桶。然后,合并操作可以是1次传递,如果在任何时候桶的大小超过N/K,您就会“溢出”到下一个桶(也是排序的,所以始终是前置的)。
原则上,知道N和K的数字,那么桶的大小应该很容易计算。正如斯派克所做的那样,您可能需要研究基于排序的洗牌(这里和这里),在这里,我了解维护人员已经得到了显著的改进(并进行了重大的优化)。它可能就像使用这个工具分割成K分区一样简单!:-)
https://stackoverflow.com/questions/30029958
复制相似问题