作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
像这样的数组:
[google, google, yahoo, yahoo, yahoo, msn, msn, msn, google]
用尽可能少的相邻值排列它的最佳方式是什么?目标是得到这样的东西,例如:
[google, msn, yahoo, google, yahoo, msn, yahoo, msn, google]
更好的算法是确保任何相似的值尽可能远离彼此。
更好的办法是直接在 SQL 中执行。
我正在为我正在处理的发送时事通讯的脚本做这件事,我想避免一次向同一个域发送太多电子邮件。
[编辑] 我正在使用 MySQL
最佳答案
使用 SQL Server 2005
及更高版本,您可以利用 ROW_NUMBER
功能
您要求它们应尽可能远离彼此的要求可能无法满足,但总而言之,这就足够了。
SELECT Site
FROM (
SELECT Site, o = ROW_NUMBER() OVER (PARTITION BY Site ORDER BY Site)
FROM q
) q
ORDER BY
o, Site
google msn yahoo google msn yahoo google msn yahoo
;WITH q ([site])AS (
SELECT 'google'
UNION ALL SELECT 'google'
UNION ALL SELECT 'yahoo'
UNION ALL SELECT 'yahoo'
UNION ALL SELECT 'yahoo'
UNION ALL SELECT 'msn'
UNION ALL SELECT 'msn'
UNION ALL SELECT 'msn'
UNION ALL SELECT 'google'
)
SELECT Site
FROM (
SELECT Site, o = ROW_NUMBER() OVER (PARTITION BY Site ORDER BY Site)
FROM q
) q
ORDER BY
o, Site
关于sql - 尽可能少地排列相邻值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7776802/
我知道在 KDB 中,如果您有一个列表,例如... l:`apples`oranges`pears` 您可以像下面这样进行 N 次随机选择: 9?l 但是如何尽可能均匀地选择列表中的每个项目? 最佳答
我真的厌倦了它。我有一个高级 Web 应用程序依赖于大量 Javascript 库(jQuery、jQueryUI、OpenLayers、highcharts、EJSChart 等等)。不用说,Int
我是一名优秀的程序员,十分优秀!