논리
- 0번째 인덱스가 가장 작다고 가정한다.
- 그 다음 인덱스부터 가정한 값과 비교하면서 확인한다.
- 다음 인덱스 값이 가정한 값 보다 작다면 가정한 값을 치환한다.
- 계속 비교해 나간다.
예제
- 배열에 [10, 2, 5, -3, 1]가 들어있다.
- 10을 가장 작다고 가정한다.
- 10를 1번 인덱스부터 비교를 한다.
- 10보다 작은 값이 없다면 10이 최소 값이 된다.
- 10보다 작은 값이 있다면 그 값을 최소 값으로 치환한다.
- 비교를 다시 시작한다.
예제 코드
// 배열에 데이터 할당
int datas[] = {10, 2, 5, -3, 1};
// 0번 인덱스가 최소 값이라고 가정
int minIndex = 0;
// 1번부터 마지막 인덱스까지 반복
for(int i=1; i<datas.length;i++)
{
//i번 값이 가정 값 보다 작다면
if(datas[i] < datas[minIndex])
{
//i번 인덱스 값을 저장
minIndex = i;
}
}
//출력
System.out.print(minIndex + "번 index에 있는 " + datas[minIndex] + "입니다.")
디버깅표
i |
i<datas.length |
datas[i]<datas[minIndex] |
maxIndex |
1 |
T |
T |
1 |
2 |
T |
F |
|
3 |
T |
T |
-3 |
4 |
T |
F |
|
5 |
F |
|
|