我试图使用冒泡排序方法对只有三个数字的数组进行排序下面是我正在使用的代码。

def my_sort(list)
  return list if list.size <= 1

  swapped = false

  while !swapped
    swapped = false

    0.upto(list.size-2) do |i|
      if list[i] > list[i+1]
        list[i], list[i+1] = list[i+1], list[i]
        swapped = true
      end
    end

    list
  end

my_sort([3,1,2])

以下是我一直收到的错误消息:
Syntax error, unexpected $end, expecting keyword_end

我只是想知道哪一端不应该包括在内?

最佳答案

您在end之后缺少一个swapped = true最好彻底、准确地缩进代码,以避免此类问题:

def my_sort(list)
  return list if list.size <= 1

  swapped = false
  while !swapped
    swapped = false
    0.upto(list.size-2) do |i|
      if list[i] > list[i+1]
        list[i], list[i+1] = list[i+1], list[i]
        swapped = true
      end
    end
  end

  list
end

关于ruby - 不使用Sort方法在Ruby中对数组进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11106981/

10-09 05:49
查看更多