用ruby撸代码——冒泡算法

2019-10-27  本文已影响0人  春木橙云

最近双十一,公司赶上线新功能,忙疯了,终于忙里偷闲撸一下ruby代码,新手入坑,勿喷!

新源代码:(多重赋值减少代码)


$array = [2, 31, 33, 41, 16, 76]
$final_data = []

def bubble
  $array.length.times do
    $array.each_with_index do |item, index|
      if $array[index + 1]
        if item > $array[index + 1]
          $array[index],$array[index+1] = $array[index+1],$array[index]
        end
      end
    end
    $final_data.push($array[$array.length - 1])
    $array.pop
  end
end

p "原数组", $array
bubble
p "结果", $final_data

原源代码:

$array = [2, 31, 33, 41, 16, 76]
$final_data = []

def bubble
  $array.length.times do
    $array.each_with_index do |item, index|
      if $array[index + 1]
        if item > $array[index + 1]
          change_position($array, index)
        end
      end
    end
    $final_data.push($array[$array.length - 1])
    $array.pop
  end
end

def change_position (arr, index)
  arr_store = arr[index + 1]
  arr[index + 1] = arr[index]
  arr[index] = arr_store
end

p "原数组", $array
bubble
p "结果", $final_data

输出结果:

"原数组"
[2, 31, 33, 41, 16, 76]
"结果"
[76, 41, 33, 31, 16, 2]

总结:

上一篇 下一篇

猜你喜欢

热点阅读