找数组的最大值和最小值

找数组的最大值和最小值

对于一个数字数组,我们需要在其中找到最大值和最小值,有时候这个操作也是我们实现其他问题的基础。

基本思路

在对数组进行查找之前,我们需要先定义两个变量maxmin,表示当前最大值和最小值。然后遍历数组中的每个元素,与最大值和最小值进行比较,如果当前元素比最大值大,则更新最大值,如果当前元素比最小值小,则更新最小值。最终遍历完成时,最大值和最小值即为数组中的最大值和最小值。

具体的代码实现如下所示:

def find_max_min(arr):
    if len(arr) == 0:
        return None, None
    max_val = arr[0]
    min_val = arr[0]
    for num in arr:
        if num > max_val:
            max_val = num
        elif num < min_val:
            min_val = num
    return max_val, min_val

代码说明

上面的代码定义了一个find_max_min函数,用于查找数组中的最大值和最小值。函数中使用了一个if语句来判断输入数组是否为空,如果为空,则返回两个值都为None的元组。如果输入不为空,则定义max_valmin_val变量分别为数组的第一个元素,然后循环遍历数组中的每个元素。在循环中,首先判断当前元素是否大于max_val,如果是,则更新max_val,否则判断当前元素是否小于min_val,如果是,则更新min_val。最后返回max_valmin_val即可。

示例说明

让我们来看两个示例,以说明这个函数的用法。

示例一:查找整数数组中的最大值和最小值

假设我们有一个整数数组arr,其内容为[23, 45, 12, 67, 89, 34, 78, 33]。要查找这个数组中的最大值和最小值,只需要调用find_max_min函数即可:

arr = [23, 45, 12, 67, 89, 34, 78, 33]
max_val, min_val = find_max_min(arr)
print(f"最大值为: {max_val}, 最小值为: {min_val}")

输出结果为:

最大值为: 89, 最小值为: 12

可以看到,函数成功地找到了数组中的最大值和最小值。

示例二:查找浮点数数组中的最大值和最小值

我们同样可以使用find_max_min函数来查找浮点数数组中的最大值和最小值。例如,假设我们有一个浮点数数组arr,其内容为[3.14, 5.78, 1.23, 2.68, 9.87, 4.56]。要查找这个数组中的最大值和最小值,只需要调用find_max_min函数即可:

arr = [3.14, 5.78, 1.23, 2.68, 9.87, 4.56]
max_val, min_val = find_max_min(arr)
print(f"最大值为: {max_val}, 最小值为: {min_val}")

输出结果为:

最大值为: 9.87, 最小值为: 1.23

可以看到,函数同样成功地找到了数组中的最大值和最小值,而且这个数组中的元素全部为浮点数。