최대값 구하기 알고리즘
5개의 서로 다른 정수 데이터를 저장한 배열이 존재합니다
가장 큰값을 가진 index의 위치와
그 값(가장 큰 값)을 출력
한글 코딩
인덱스 1번의 값을 max로 지정한후 차례대로 다음 인덱스와 비교하여
크면 max를 다음 인덱스의 값으로 바꾸고 다음 인덱스 이동
아니면 그냥 다음인덱스로 이동
디버깅 표
max 사용
maxIndex max i i<5 max<datas[i]
--------------------------------------------
0 2 1 T T
1 3 2 T F
3 T T
3 5 4 T F
5 F
public class Test01 {
public static void main(String[] args) {
int[] datas =new int [5];
datas[0]=2;
datas[1]=3;
datas[2]=1;
datas[3]=5;
datas[4]=4;
System.out.print("[ ");
for(int data:datas) {
System.out.print(data+" ");
}
System.out.println("]");
int max=datas[0];
//max 현재 예상중인 가장 큰값
int maxIndex=0;
//maxIndex max가 저장된 index 위치
//0 권장 비교를 [1] index 부터 [4] index까지
//비교를 2번째 데이터부터 5번째 데이터까지
//for문!
for(int i=1;i<datas.length;i++ ) {
if(datas[i]>max) {//내가 예상한 max보다 크다면
//너가 max해
max=datas[i];
maxIndex=i;
}
}
System.out.println("최대값은 "+max+"이고,");
System.out.println("위치는 ["+maxIndex+"] 입니다.");
}
}
디버깅 표
data[maxIndex]사용
maxIndex i i<5 data[maxIndex]<datas[i]
--------------------------------------------------------
0 1 T T
1 2 T F
3 T T
3 4 T F
5 F
public class Test01 {
public static void main(String[] args) {
int[] datas =new int [5];
datas[0]=2;
datas[1]=3;
datas[2]=1;
datas[3]=5;
datas[4]=4;
System.out.print("[ ");
for(int data:datas) {
System.out.print(data+" ");
}
System.out.println("]");
int maxIndex=0;
//maxIndex max가 저장된 index 위치
//0 권장 비교를 [1] index 부터 [4] index까지
//비교를 2번째 데이터부터 5번째 데이터까지
//for문!
for(int i=1;i<datas.length;i++ ) {
if(datas[i]>datas[maxIndex]) {//내가 예상한 max보다 크다면
//너가 max해
//max==datas[maxIndex]
maxIndex=i;
}
}
System.out.println("최대값은 "+datas[maxIndex]+"이고,");
System.out.println("위치는 ["+maxIndex+"] 입니다.");
}
}