将色调分类为最短跨度的算法,例如`350,354,2,10,15`? [0-360度]

在配色方案中,我想对色调进行排序,但是希望避免“大间隙”,即更喜欢
350,354,2,10,15
而不是
2,10,15,350,354
(当表示为0-360度值时)。这样做的最佳方法是什么(例如在php中)?它是否找到了“最大的差距”并在此之后开始?有更好的想法吗?     
已邀请:
找到最大的差距并把它放在一开始。 对数组进行排序 找到最大的差距(循环通过阵列,找到两个邻居之间的最大距离) 将差距移到开头(另一个循环移动所有数字)     
如果你没有那么多: 只是按顺序排序 找到方差(模360)(即它们与'模360意味着'的距离有多远) 将第一个移到最后,再次检查方差。 在尝试了所有这些之后,选择最小的那个。 该算法的列表大小为O(N ^ 2)。 最重要的是你在这里只有N'轮换'。确定一个'gappiness'统计数据,并在所有N个旋转上强制执行,并使用最小化'gappiness'的安排。     

要回复问题请先登录注册