논리
- 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 |
|
|