input: Write a function to determine the most efficient order of tasks from an array of given tasks. The function should take a list of tasks and return an ordered list representing the most efficient order for completing the tasks. If the given list is empty, it should return an empty list.
  assert most_efficient_order([])==[]
  assert most_efficient_order([Task('A', 5), Task('B', 3), Task('C', 7)])==[Task('B', 3), Task('A', 5), Task('C', 7)]
  assert most_efficient_order([Task('X', 1), Task('Y', 9), Task('Z', 4)])==[Task('X', 1), Task('Z', 4), Task('Y', 9)]
  assert most_efficient_order([Task('P', 2), Task('Q', 2), Task('R', 2)])==[Task('P', 2), Task('Q', 2), Task('R', 2)]
  assert most_efficient_order([Task('M', 10)])==[Task('M', 10)]
output: def most_efficient_order(tasks):
      return sorted(tasks, key=lambda task: task.duration)