如何在不使用排序方法的情况下进行排序?

时间:2012-06-15 19:56:21

标签: ruby

我正在尝试对数组进行排序,但是对于练习我无法使用sort方法。

因为我还必须返回空数组,以及只有一个项目的数组,我有点作弊。 技术上我只需要排序三个项目,但这似乎是使用while的情况吗?

这是我到目前为止所得到的。

def my_sort(input)
  if input[0] == nil
    print "[]"
  elsif input[1] == nil
    print "[" + input[0].to_s + "]"
  end
end

我想知道我是否应该将其分解为字符串,或者是否有某种.each do ||可以完成。

2 个答案:

答案 0 :(得分:3)

听起来你要求排序算法。有lots,但像插入排序这样的东西可能是最容易实现的,或者冒泡排序,如果没有太多的数字可以排序。

也许this SO post会有所帮助。

答案 1 :(得分:0)

如果您只对三个项目进行排序,我建议使用Bubble sort。您需要做的就是遍历数组,一次一个元素。如果当前元素的值不正常,则将其与下一个元素交换。对于大型列表来说,这是一个非常可怕的算法;但它是排序算法的一个很好的,简单的介绍。