📌  相关文章
📜  国际空间研究组织 | ISRO CS 2007 |问题 12(1)

📅  最后修改于: 2023-12-03 15:07:33.205000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2007 |问题 12

该问题是ISRO CS 2007年计算机科学考试中的问题12。问题要求编写一个程序,该程序将一个大小为n的整数数组作为输入,并找到该数组的最大值和最小值。

Markdown代码片段如下所示:

def find_max_min(arr):
    """
    This function finds the maximum and minimum values in an array.

    Args:
    arr (list): A list of integers.

    Returns:
    tuple: A tuple containing the maximum and minimum values in the array.
    """
    # setting the initial max and min values to the first element of the array
    max_val = arr[0]
    min_val = arr[0]
    # iterating through the array to find the max and min values
    for i in range(len(arr)):
        if arr[i] > max_val:
            max_val = arr[i]
        if arr[i] < min_val:
            min_val = arr[i]
    return (max_val, min_val)

该函数首先将数组的第一个元素作为最大值和最小值的初始值。然后,它遍历整个数组,如果它遇到比当前最大值更大的元素,就将该元素设置为新的最大值。同样地,如果它遇到比当前最小值更小的元素,就将该元素设置为新的最小值。最后,该函数将最大值和最小值作为元组返回。

该函数可以使用以下方式调用:

arr = [5, 3, 6, 2, 1, 7, 4]
max_val, min_val = find_max_min(arr)
print("Maximum value:", max_val)
print("Minimum value:", min_val)

输出将是:

Maximum value: 7
Minimum value: 1

这个函数的时间复杂度为$O(n)$,因为它只需要遍历一次整个数组,并比较每个元素。它的空间复杂度是$O(1)$,因为它只需要存储两个变量(即最大值和最小值)。