函数设计

26 阅读1分钟
// 定义一个函数
// 功能: 求三个数的最大值
// 方案:
/*
* 1. 三位一体比较
* if(x>=y && x>=z){
    x
} else if(y>=x && y>=z){
    y
} else{
    z
}

* 2. 两次二选一
* var t = if(x>y) x else y
* if(t>z) t else z

*/
def max(x: Int, y: Int, z: Int): Int = {
    val t = if(x > y) x else y
    if(t > z) t else z
}

def main(args: Array[String]): Unit = {
    val ret = max(1000, 200, 100)
    println(s"${ret}")
}

函数设计摘要

算法思路

采用"两次二选一"策略:

  1. 先比较前两个数,找出较大值
  2. 再用这个较大值与第三个数比较
  3. 时间复杂度:O(1),空间复杂度:O(1)

代码特点

  • 使用 val 声明不可变变量
  • 利用 if-else 表达式返回值
  • 函数体简洁,逻辑清晰
  • 类型安全,编译时检查