Search

배열6_개념04_정렬

대분류
STEP05 배열
소분류
배열6_개념

영상

개념

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
복사