#定义一个获取最大值的方法
def max_in_array(array)
max_numb = array[0]
arrayLength = array.length
puts "array.length is #{array.length}"
#对数组的所有元素进行遍历
for i in 1..arrayLength
puts "array is #{array}"
puts "-------i is #{i}--------arraylength is #{arrayLength}"
#如果数组i大于最大值,那么最大值就是第i个元素
if array[i].to_i > max_numb
puts "array[i] is #{array[i]}--------max_numb is #{max_numb}--"
max_numb = array[i]
end
end
return max_numb.to_s
end
puts max_in_array [4,2,8,3,5]
puts "--------------------------------------------------------"
#定义一个获取min的方法
# 从某个数组中取得最小的元素
# array : 目标数组
def min_in_array(array) min_numb = array[0]
arrayLength = array.length
puts "array.length is #{array.length}"
#对数组的所有元素进行遍历
for i in 1..(arrayLength - 1)
puts "array is #{array}"
puts "-------i is #{i}--array[i] is #{array[i]}------arraylength is #{arrayLength}"
#如果数组变量最小值大于第i个元素,第i个元素就是最小值
if array[i].to_i < min_numb
puts "array[i] is #{array[i]}--------min_numb is #{min_numb}--"
min_numb = array[i]
puts "min_numb is #{min_numb}"
end
end
puts "min is #{min_numb}........"
return min_numb
end
puts min_in_array ([4,2,8,3,5])
puts "--------------------------------------------------------"
def get_bigger array, n
puts "==== in get_bigger, n : #{n}, current array is: #{array}"
# 先比较 n 与 n + 1 的关系
# 如果 array[n] <= array[n + 1] # 那么就 不变。
# 如果 array[n] > array[n + 1] # 那么就 交换两个元素的位置
element_n = array[n]
element_n_plus_1 = array[n + 1]
puts "----------- element_n: #{element_n}, element_n_plus_1: #{element_n_plus_1}"
if element_n <= element_n_plus_1
puts "============= no need to change array"
else
temp = array[n]
array[n] = array[n + 1]
array[n + 1] = temp
puts "============= NEED to change array, after change , array: #{array}"
end
# 终止条件遍历到了数组的最后 一个元素: n == array.length - 1
if n == array.length - 2
else
# 比较 n + 1 与 n + 2
get_bigger(array, n + 1)
end
end
def get_max array
puts "=== array.size : #{array.size}, array: #{array}"
n = 0
get_bigger(array, n)
return array[array.length - 1]
end
puts get_max([2,3,5,3,1,1,1,1,22,2,2]) # => 22