ruby median find

def find_median(arr)
  sorted_arr = arr.sort
  length = sorted_arr.length

  if length.odd?
    median_index = length / 2
    median = sorted_arr[median_index]
  else
    upper_index = length / 2
    lower_index = upper_index - 1
    median = (sorted_arr[lower_index] + sorted_arr[upper_index]) / 2.0
  end

  median
end

# Example Usage:
# arr = [4, 7, 1, 9, 2, 5, 6, 8, 3]
# result = find_median(arr)
# puts result