ruby 获取某个数组的最大值最小值

#定义一个获取最大值的方法
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

 

         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值