[java] Array 배열에서 최댓값을 구하는 방법과 시간복잡도

ideal dev·2023년 3월 2일
0

Java

목록 보기
5/7

1. 반복문

  • 반복문을 돌면서 최댓값을 찾는 방법
  • 코드
int[] arr = { 1, 2, 3, 4, 5 };
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
    if (arr[i] > max) {
        max = arr[i];
    }
}
System.out.println("최댓값: " + max);
  • 시간복잡도 : 배열의 값을 하나씩 비교하기 때문에 O(n)

2. Arrays 클래스의 sort() 메서드

  • 정렬시킨 후 마지막 요소를 최댓값으로 설정
int[] arr = { 1, 2, 3, 4, 5 };
Arrays.sort(arr);
int max = arr[arr.length - 1];
System.out.println("최댓값: " + max);
  • 시간복잡도 : O(nlogn)

3. Stream() 사용

int[] arr = { 1, 2, 3, 4, 5 };
int max = Arrays.stream(arr).max().getAsInt();
System.out.println("최댓값: " + max);
  • 시간복잡도 : O(n)

4. parallelStream() 이용

  • 배열을 병렬로 처리하며 최댓값을 찾는 방법
int[] arr = { 1, 2, 3, 4, 5 };
int max = Arrays.parallelStream(arr).max().getAsInt();
System.out.println("최댓값: " + max);
  • 시간복잡도 : O(log n)
  • 배열의 크기가 작을 때는 오히려 느릴 수 있으며, 배열의 크기가 클 때 parallelStream() 이용

5. Collections 클래스의 max() 메서드

  • 배열 대신 List를 사용하여 Collections의 max 메서드 사용
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int max = Collections.max(list);
System.out.println("최댓값: " + max);

- 시간복잡도 : O(n)

0개의 댓글