ruby - 在 Ruby 中对数组使用冒泡排序方法

标签 ruby bubble-sort

<分区>

我正在尝试将冒泡排序方法实现为一个简单的 Ruby 编码问题,但我遇到了一些麻烦。我理解这个想法是查看第一个元素的值并将其与第二个元素的值进行比较,然后相应地交换它们,但我似乎无法在实际问题中做到这一点。有人愿意提供一个简短的例子来说明这在 Ruby 中是如何工作的吗?

最佳答案

使用 while 循环正确实现冒泡排序

def bubble_sort(list)
  return list if list.size <= 1 # already sorted
  swapped = true
  while swapped do
    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] # swap values
        swapped = true
      end
    end    
  end

  list
end

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

相关文章:

ruby - 类方法中的define_method

Ruby Gem Twitter - 证书验证失败(Twitter::Error::ClientError)

ruby - 加载错误 : no such file to load — curl

html - Nokogiri Xpath 在 <TD> 和 <SPAN> 内检索 <BR> 之后的文本

c++ - 使用回调开关对 vector 进行C++冒泡排序

c++ - 我如何以不同方式实现此冒泡排序?

ruby-on-rails - 在 ruby​​ 中,如何创建一个具有选项散列的方法,我可以将符号传递给它?

c - 为什么我的链表冒泡排序函数有时会输出错误的结果,有时又看起来像是无限循环?

java - 冒泡排序太长?

java - 冒泡排序并行数组