我完全理解冒泡排序的工作原理。只是给了我一个编码练习,我必须创建一个猴子修补到 Array 类的方法,其中使用了一个代码块并且它具有 spaceship 运算符。下面是我的代码:
class Array
def bubble_sort!
len = self.length - 1
loop do
swapped = false
for i in 0...len
if self[i] > self[i + 1]
self[i], self[i + 1] = self[i + 1], self[i]
swapped = true
end
end
break if swapped == false
end
self
end
# def bubble_sort(&prc)
# end
end
这是我的方法,但我不知道如何在块内使用bubble_sort!
“宇宙飞船操作员”来编写它。<=>
练习希望我能够将块{|num1,num2| num1 <=> num2}
升序和{|num1,num2| num2 <=> num1}
降序传递到方法中。我调用一个块没有问题,而且我理解宇宙飞船操作员如何比较它的变量< == -1
,= == 0
和> == 1
. 我唯一的问题是我不知道如何将其写入冒泡排序的实际条件语句中。