用ruby撸代码——冒泡算法

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

用ruby撸代码——冒泡算法_第1张图片

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


$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]

总结:

  • 使用到的知识包括:循环语句、全局变量、局部变量、函数定义方法、打印功能、if判断语句、数组的相关方法等;
  • 实现方式相对简单,有待打磨代码。

你可能感兴趣的:(用ruby撸代码——冒泡算法)