Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 배열에서 최댓값 찾는 방법: 가장 큰 요소 구하기

이 튜토리얼에서는 C++을 사용하여 배열에서 가장 큰 요소(최댓값)를 찾는 방법을 알아보겠습니다.

배열이 하나 주어졌을 때, 우리의 목표는 배열에 포함된 여러 요소들 중에서 가장 큰 숫자를 찾아내는 것입니다.

접근 방법

가장 기본적이고 직관적인 방법은 다음과 같습니다.

1. 배열의 첫 번째 요소를 초기 최댓값으로 설정합니다.
2. 두 번째 요소부터 마지막 요소까지 배열을 순회하며 현재 최댓값과 비교합니다.
3. 더 큰 값을 발견하면 최댓값을 해당 값으로 갱신합니다.
4. 모든 요소를 확인한 후 최종 최댓값을 반환합니다.

예제 코드

#include <bits/stdc++.h>
using namespace std;

//배열에서 가장 큰 정수를 찾는 함수
int largest(int arr[], int n){
    int i;
    int max = arr[0]; //첫 번째 요소를 초기 최댓값으로 설정
    //나머지 요소들을 순회하며 비교
    for (i = 1; i < n; i++)
        if (arr[i] > max)
            max = arr[i];
    return max;
}

int main(){
    int arr[] = {10, 324, 45, 90, 9808};
    int n = sizeof(arr) / sizeof(arr[0]); //배열 크기 계산
    cout << "주어진 배열에서 가장 큰 값은 " << largest(arr, n);
    return 0;
}

실행 결과

주어진 배열에서 가장 큰 값은 9808

코드 설명

위 코드에서 largest() 함수는 배열과 배열의 크기를 매개변수로 받습니다. 먼저 첫 번째 요소를 최댓값으로 초기화한 뒤, 인덱스 1부터 시작하는 반복문을 통해 나머지 모든 요소와 비교합니다. 이 과정에서 더 큰 값을 만나면 max 변수를 갱신하고, 반복이 끝나면 최종적으로 가장 큰 값을 반환합니다.

main() 함수에서는 sizeof(arr) / sizeof(arr[0]) 연산을 사용해 배열의 전체 크기를 개별 요소 크기로 나누어 배열의 길이를 계산합니다.

시간 복잡도

이 알고리즘은 배열의 모든 요소를 한 번씩만 확인하므로 시간 복잡도는 O(n)입니다. 추가 메모리를 거의 사용하지 않으므로 공간 복잡도는 O(1)입니다.