본문 바로가기

알고리즘

[알고리즘] 최대 값 찾기 알고리즘

논리

  • 0번째 인덱스가 가장 크다고 가정한다.
  • 그 다음 인덱스부터 가정한 값과 비교하면서 확인한다.
  • 다음 인덱스 값이 가정한 값 보다 크다면 가정한 값을 치환한다.
  • 계속 비교해 나간다.

예제

  • 배열에 [2, 1, 3, 5, 4]가 들어있다.
  • 2를 가장 크다고 가정한다.
  • 2를 1번 인덱스부터 비교를 한다.
  • 2보다 큰 값이 없다면 2가 최대 값이 된다.
  • 2보다 큰 값이 있다면 그 값을 최대 값으로 치환한다.
  • 비교를 다시 시작한다.

예제 코드


// 0번 인덱스를 가장 큰 값이라고 가정
int maxIndex=0;

// 1번부터 마지막 인덱스까지 반복  
for(int i=1;i<datas.length;i++)
{

     //i번 값이 가정 값 보다 크다면  
      if(datas[i] > datas[maxIndex])   
    {

        //i번 인덱스를 저장
        maxIndex=i;

      }

}

//출력
System.out.println("최대값은 " + datas[maxIndex] + "이고, ");  

//출력
System.out.println("위치는 [" + maxIndex + "]입니다.");

디버깅표

i i<datas.length datas[i]>datas[maxIndex] maxIndex
1 T F
2 T T 2
3 T T 3
4 T F
5 F

'알고리즘' 카테고리의 다른 글

[알고리즘] 선택정렬  (0) 2023.11.29
[알고리즘] 버블정렬  (0) 2023.11.28
[알고리즘] 삽입정렬  (0) 2023.11.28
[알고리즘] 탐색 알고리즘  (0) 2023.11.27
[알고리즘] 최소 값 찾기 알고리즘  (0) 2023.11.27