在配色方案中,我想对色调进行排序,但想避免“大差距”,即更喜欢350,354,2,10,15
(2,10,15,350,354
当表示为 0-360 度值时)。这样做的最佳方法是什么(例如在 php 中)?它是否找到了“最大的差距”并在那之后开始?有更好的想法吗?
2 回答
0
如果你没有那么多:
- 只是按顺序排序
- 找到方差(模 360)(即,它们与“模 360 均值”相差多远)
- 将第一个移到最后,再次检查方差。
- 在你尝试了所有这些之后,选择最小的一个。
该算法的列表大小为 O(N^2)。
主要的收获是你在这里只有 N 个“旋转”。确定一个“差距”统计数据,并在所有 N 次旋转中强制使用它,并使用最小化“差距”的安排。
于 2011-04-02T15:24:14.667 回答
0
只需找到最大的差距并将其放在开头即可。
- 对数组进行排序
- 查找最大间隙(循环遍历数组,查找两个邻居之间的最大距离)
- 移动间隙作为开始(另一个循环移动所有数字)
于 2011-04-02T15:32:55.443 回答