小编Ari*_*N3o的帖子

根据另一个数组的元素对数组进行排序

我有一系列的ID

a1 = [1, 2, 3, 4, 5]  
Run Code Online (Sandbox Code Playgroud)

我有另一个对象数组,其中id为随机顺序

a2 = [(obj_with_id_5), (obj_with_id_2), (obj_with_id_1), (obj_with_id_3), (obj_with_id_4)]  
Run Code Online (Sandbox Code Playgroud)

现在我需要根据a1中id的顺序对a2进行排序.所以a2现在应该成为:

[(obj_with_id_1), (id_2), (id_3), (id_4), (id_5)]  
Run Code Online (Sandbox Code Playgroud)

a1可能是[3,2,5,4,1]或任何顺序,但a2应对应于a1中id的顺序.

我喜欢这个:

a1.each_with_index do |id, idx|
  found_idx = a1.find_index { |c| c.id == id }
  replace_elem = a2[found_idx]
  a2[found_idx] = a2[idx]
  a2[idx] = replace_elem
end  
Run Code Online (Sandbox Code Playgroud)

但是如果a2的元素顺序正好与a1相反,那么这仍然可能会遇到O(n ^ 2)时间.有人可以告诉我最有效的排序方式吗?

ruby arrays sorting algorithm

39
推荐指数
4
解决办法
2万
查看次数

facebook的状态更新机制背后的设计和架构是什么?

我打算创建一个社交网络,我不认为我完全理解facebook的状态更新模块是如何设计的.希望我能在这里找到一些帮助.在算法和数据结构级别,在社交网络中创建状态更新机制的最有效方法是什么?

对所有朋友进行全表扫描然后对他们的更新进行排序是非常天真和昂贵的.我们是否使用基于散列或其他东西的某种机制?请告诉我.

PS:我不是在谈论他们的EdgeRank算法,而是基本的状态更新.他们如何从数据库中查找和获取它们?

在此先感谢您的帮助!

algorithm facebook status

16
推荐指数
1
解决办法
8620
查看次数

mongodb:多键索引结构?

我发现很难理解在mongodb中如何在多键上完成索引编制.

这是我在其网站上读到的关于mongodb文档中的多键的内容:
1)"在数组元素索引上创建索引导致数据库索引数组的每个元素"
2)"...将索引文档上的所有标记,并为该文档创建"X","Y"和"Z"的索引条目."

那么该文档的索引条目究竟意味着什么呢?每个文档是否记住条目,在这种情况下,搜索将是一个全表扫描?或者它是与mysql相同的b-tree索引,其中每个索引条目将指向每个相应事件的多个文档,在这种情况下,我过度思考.

我们来举个例子:
obj1 = {
name: "Apollo",
text: "Some text about Apollo moon landings",
tags: [ "moon", "apollo", "spaceflight", "nasa" ]
}

obj2 = {
name: "Atlantis",
text: "Some text about Atlantis flight missions",
tags: [ "space", "atlantis", "spaceflight", "nasa" ]
}

>db.articles.ensureIndex( { tags : 1 } )

请帮我理解!提前致谢.

indexing mongodb mongodb-indexes

15
推荐指数
1
解决办法
4119
查看次数

Ruby:如何从字符串中删除尾部反斜杠?

我有一个字符串

"car\"
Run Code Online (Sandbox Code Playgroud)

我将存储在postgres db中.我想在保存之前从字符串中删除反斜杠.有没有办法可以用ruby或postgres做到这一点?当我尝试在ruby中删除它时,它将反斜杠后的引号视为转义字符.

ruby string postgresql ruby-on-rails

11
推荐指数
1
解决办法
1万
查看次数

你如何在Ruby中实现1.day.ago

正如你们可能已经猜到的那样,这是一个面试问题.但我不会透露哪家公司.我被要求实施

1.day.ago
Run Code Online (Sandbox Code Playgroud)

在Ruby中.这是Rails中的日期帮助器,但Ruby中不存在此功能.

ruby ruby-on-rails date helper

1
推荐指数
1
解决办法
6170
查看次数