ppr*_*yer 4 ruby ruby-on-rails bubble-sort ruby-on-rails-3 ruby-on-rails-3.1
我正在尝试将Bubble排序方法实现为Ruby的简单编码问题,但我遇到了一些麻烦.我理解的想法是查看第一个元素的值并将其与第二个元素的值进行比较,然后相应地交换它们,但我似乎无法在实际问题中这样做.有人愿意提供一个关于这在Ruby中如何工作的简短示例吗?
clu*_*luv 13
使用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
Run Code Online (Sandbox Code Playgroud)
arr = [4,2,5,1]
loop until arr.each_cons(2).with_index.none?{|(x,y),i| arr[i],arr[i+1] = y,x if x > y}
p arr #=> [1, 2, 4, 5]
Run Code Online (Sandbox Code Playgroud)
def bubble_sort(list)
return list if list.size <= 1 # already sorted
loop 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
break unless swapped
end
list
end
Run Code Online (Sandbox Code Playgroud)
尽管我肯定会推荐比冒泡排序运行时间更好的东西:)
| 归档时间: |
|
| 查看次数: |
16697 次 |
| 最近记录: |