본문 바로가기

JAVA

[JAVA] 배열 최대값, 최소값 구하기 알고리즘

반응형

오늘은 자바 배열에서 최대값, 최소값 을 구하는 알고리즘에 대해서 알아보도록 하겠습니다. 

 

먼저 순서대로 하나하나 살펴보도록 하겠습니다. 

 

1. 배열선언

int [] arr = { 4, 6, 32, 98, 1};

 

2. 최대값을 담을 변수(max) 선언하고 배열의 인덱스 0 값 참조하기.

int max = arr[0];

 

3. for문 if문 활용해 최대값 찾기.

배열의 맨 처음부터 끝까지 앞뒤 인덱스를 비교하면서 큰값을 최대값으로 넣어주는 방식입니다. 

for ( int i = 1; i < arr.length; i++) {
      if (arr[i]>max) {
         max = arr[i];
       }
}

4. 최대값 출력하기 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package test;
 
public class Max {
    
    public static void main(String[] args) {
        
        int [] arr = { 4632981}; // 배열 선언
        
        // 최대값을 담을 변수를 선언,
        //배열의 인덱스 0값 참조하기위해 arr[0]이라고 넣어준다.
        int max = arr[0];
        
        // for문 if문 활용해 최댓값 찾기 
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        
        System.out.println("최대값은 : " + max);
}
}
cs

< 최대값 디버깅표 > 

최소값은 배열과 변수를 선언하고 배열의 인덱스 0값을 참조하는건 동일하지만,

if (arr[i] < min) 더 작은 값을 최소값 변수에 넣어주면 된다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package test;
 
public class Min {
    
    public static void main(String[] args) {
        
        int [] arr = { 4632981}; // 배열 선언
        
        int Min = arr[0];
        
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] < Min) {
                Min = arr[i];
            }
        }
        System.out.println("최소값은 : " + Min);
    }
}
 
cs

< 최소값 디버깅표 > 

 


만약 최대값의 위치(인덱스)를 알고싶다면? 

최대값을 가지는 배열의 인덱스를 구하기 위해서는

인덱스 값을 나타낼 maxindex라는 변수를 추가로 선언해야 합니다. 

max의 초기값이 배열의 1번째값(index는 0) 이므로,

maxindex의 초기값을 0으로 지정하였습니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package test;
 
public class Max {
    
    public static void main(String[] args) {
        
        int [] arr = { 4632981}; // 배열 선언
        
         // 최대값, 최대값의 인덱스 초기값 세팅
        int max = arr[0];
       //max의 초기값이 배열의 1번째값(index는 0)이므로 index 초기값을 0으로 지정
        int maxindex=0
        // 최대값, 최대값의 인덱스 구하기
        for (int i = 1; i < arr.length; i++) {
            if (arr[i]>max) {
                max = arr[i];
                maxindex = i;
            }
        }
         // 최대값, 최대값 인덱스 출력
        System.out.println("최대값은 : " + max);
        System.out.println("최댓값의 인덱스는 : " + maxindex);
    }
}
cs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'JAVA' 카테고리의 다른 글

[JAVA] 배열 버블정렬(Bubble Sort) 알고리즘  (0) 2022.06.15
[JAVA] 반복문 for, while  (0) 2022.06.15
[JAVA] 재귀함수 - Stack overflow 오류  (0) 2022.06.14
[JAVA] 조건문 if, Switch  (0) 2022.06.13
[JAVA] 입력 Scanner  (0) 2022.06.13