Tag: 排序

使用Ruby作为脚本语言,使用具有4gb RAM的计算机对30gb字符串进行排序的最佳方法是什么?

嗨,我看到这是一个面试问题,并认为这是一个有趣的问题,我不确定答案。 什么是最好的方式?

在Ruby中部分排序数组

我试图按字母顺序对数组排序,排除“其他”这个词,这是我想要在数组末尾的成员。 假设该数组如下所示: cities = [[“Sidney”], [“Other”], [“Melbourne”]] 简单地说, cities.sort只需执行以下操作: [[“Melbourne”], [“Other”], [“Sidney”]] 我希望成员按字母顺序排列在最后的[“Other”] ,如下所示: [[“Melbourne”], [“Sidney”], [“Other”]] 有人能指出我在正确的方向吗?

Ruby自定义字符串排序

输入字符串: 1654AaBcDddeeFF 输出字符串: 1456acddeeABDFF 我试过的代码: test_array = [] ‘1654AaBcDddeeFF’.each_byte do |char| test_array < 1456ABDFFacddee 但我想最后看到大写字母。

Rails 3使用NOT NULL在.where条件之后排序

我有一个显示最快用户的排名: @users = User.find.sort { |a, b| b.finished_at a.created_at } 现在我要添加一些代码以防止因为finished_at beeing nil而导致错误,直到用户完成。 @users = User.find(:all, :conditions => “finished_at IS NOT NULL”).sort { |a, b| b.finished_at a.created_at } 但sort不起作用。 这种链接方法有缺陷吗? 并且find(:all, :conditions => “finished_at IS NOT NULL”) rails 3路还是过时的? 提前致谢

是否可以根据单个对象对方法的响应对对象列表进行排序?

我想展示一个产品库,其中包括出售和非出售的产品。 只有我希望待售的products出现在列表的前面,而非待售的对象才会出现在列表的末尾。 我完成此任务的一个简单方法是创建两个列表,然后合并它们(一个on_sale?对象列表和一个not on_sale?对象列表): available_products = [] sold_products = [] @products.each do |product| if product.on_sale? available_products << product else sold_products << product end end 。 。 。 但是对于我现有应用程序的结构,这需要进行过多的重构,因为我的代码很奇怪(我失去了我的分页,我宁愿不重构)。 如果有一种方法可以通过我的product模型的on_sale?方法对现有的对象列表进行排序,那会更容易on_sale? 它返回一个布尔值。 是否可以更优雅地遍历现有列表并通过rails中的true或false值对其进行排序? 我只是问,因为有很多我不知道隐藏在这个框架/语言(ruby)中,我想知道他们是否在我之前完成了工作。

Ruby中已排序元素的原始索引

arr = [1,3,2,4] arr.sort #=> [1,2,3,4] 我想要一个数组[0, 2, 1, 3] arr.sort [0, 2, 1, 3] ( arr.sort顺序的原始索引) 使用Ruby 1.9.3有一种简单的方法吗? 谢谢

按值排序散列哈希(并返回散列,而不是数组)

我有以下哈希: user = { ‘user’ => { ‘title’ => {‘weight’ => 1, …. } ‘body’ => {‘weight’ => 4, ….} …. …. } } 有可能让用户按其子哈希的权重键排序吗? 我查看了Hash.sort,但它看起来像是返回数组而不是我原来的哈希排序。

Ruby的排序方法如何与组合比较(太空船)运算符一起使用?

在这里开始编程,只是想在使用宇宙飞船运算符时理解Ruby的sort方法背后的过程。 希望有人能提供帮助。 在下面的: array = [1, 2, 3] array.sort { |a, b| a b } …我理解sort是一次比较一对数字然后如果a属于b之前返回-1 ,如果它们相等则返回0 ,如果a应该跟随b则返回-1 。 但是在按降序排序的情况下,如下: array.sort { |a, b| b a } ……究竟发生了什么? sort是否仍然比较a b然后翻转结果? 或者它是否以反向行为解释-1和1的return 0 ? 换句话说,为什么要将变量放在块中,如下所示: array.sort { |b, a| b a } …导致与第一个例子中相同的排序模式?

在Ruby中对字符串数组进行排序

我在Ruby中学到了两种数组排序方法: array = [“one”, “two”, “three”] array.sort.reverse! 要么: array = [“one”, “two”, “three”] array.sort { |x,y| yx } 我无法区分这两者。 哪种方法更好,它们在执行方面究竟有何不同?

在Rails中使用布尔值排序

我知道Ruby中的boolean是类。 但是从实际的角度来看,有没有办法通过布尔值对数组进行排序(即,所有元素首先具有真值)? 谢谢。