영상
개념
package 배열6_개념;
import java.util.Arrays;
/*
# 정렬하기
1. 인덱스 0번이 나머지를 검사한다.
2. 제일 큰 값을 찾아 교환한다.
3. 인덱스 1증가한다.
4. [1~3]을 끝까지 반복한다.
* 10, 50, 30, 40, 80, 19 ==> 80을 찾아내고 교환한다.
* 80, 50, 30, 40, 10, 19 ==> 50은 나머지중 이미 제일크다.
* 80, 50, 30, 40, 10, 19 ==> 40을 찾아내고 교환한다.
* 80, 50, 40, 30, 10, 19 ==> 30은 나머지중 이미 제일크다.
* 80, 50, 40, 30, 10, 19 ==> 19을 찾아내고 교환한다.
* 80, 50, 40, 30, 19, 10
*/
public class 배열6_개념04_정렬 {
public static void main(String[] args) {
int[] score = {10, 50, 30, 40, 80, 19};
/*
[풀이]
i = 0, maxScore = 10, maxIndex = 0
j = 0 maxScore < 10 false
j = 1 maxScore < 50 true maxScore = 50, maxIndex = 1
j = 2 maxScore < 30 false
j = 3 maxScore < 40 false
j = 4 maxScore < 80 true maxScore = 80, maxIndex = 4
j = 4 maxScore < 19 false
{80, 50, 30, 40, 10, 19}
i = 1, maxScore = 50, maxIndex = 1
j = 1 maxScore < 50 false
j = 2 maxScore < 30 false
j = 3 maxScore < 40 false
j = 4 maxScore < 10 false
j = 5 maxScore < 19 false
{80, 50, 30, 40, 10, 19}
i = 2, maxScore = 30, maxIndex = 2
j = 2 maxScore < 30 false
j = 3 maxScore < 40 true maxScore = 40, maxIndex = 3
j = 4 maxScore < 10 false
j = 5 maxScore < 19 false
{80, 50, 40, 30, 10, 19}
i = 3 maxScore = 30, maxIndex = 3
j = 3 maxScore < 30 false
j = 4 maxScore < 10 false
j = 5 maxScore < 19 false
{80, 50, 40, 30, 10, 19}
i = 4 maxScore = 10, maxIndex = 4
j = 4 maxScore < 10 false
j = 5 maxScore < 19 true maxScore = 19, maxIndex = 5
{80, 50, 40, 30, 19, 10}
i = 5 maxScore = 10, maxIndex = 5
j = 5 maxScore < 10 false
{80, 50, 40, 30, 19, 10}
*/
for(int i=0; i<score.length; i++) {
int maxScore = score[i];
int maxIndex = i;
for(int j=i; j<score.length; j++) {
if(maxScore < score[j]) {
maxScore = score[j];
maxIndex = j;
}
}
int temp = score[i];
score[i] = score[maxIndex];
score[maxIndex] = temp;
}
System.out.println(Arrays.toString(score));
}
}
Java
복사