最近双十一,公司赶上线新功能,忙疯了,终于忙里偷闲撸一下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]
总结:
- 使用到的知识包括:循环语句、全局变量、局部变量、函数定义方法、打印功能、if判断语句、数组的相关方法等;
- 实现方式相对简单,有待打磨代码。
网友评论