본문 바로가기
Dev Story 💻/Java

[Java] 배열을 이용한 선택 정렬 알고리즘

by 몽테 2021. 11. 24.
반응형

 

 

선택정렬 알고리즘
package arrayEx;

import java.util.Arrays;

public class ArraySort {

	public static void main(String[] args) {
		int[] arr = {8,4,2,5,7};
		// 선택정렬 알고리즘
		//	i		j
		//	0		1234
		//	1		234
		//	2		34
		//	3		4
		
		for(int i = 0; i < arr.length-1; i++) {
			for(int j = i+1; j < arr.length; j++) {
				if(arr[i] > arr[j]) {
					int tmp = arr[i];
					arr[i] = arr[j];
					arr[j] = tmp;
				}
			}
		}

		System.out.println(Arrays.toString(arr));	//배열 출력
	
	}

}

배열 {8,4,2,5,7}은 index 0번부터 4번까지 5의 길이를 갖는 배열이다.

 

반복문의 순서대로 첫번째 싸이클의 진행은

index 0번의 8과 index 1 ~ 4번(4,2,5,7)의 크기 비교한 후 index 0의 값이 나머지index의 값보다 크다면 스왑한다.

{8,4,2,5,7}  -- 시작

{4,8,2,5,7}  -- 0과 1비교

{2,8,4,5,7}  -- 0과 2비교

{2,8,4,5,7}  -- 0과 3비교

{2,8,4,5,7}  -- 0과 3비교

 

2번째 싸이클

index 1번의 값과 index 2 ~ 4번의 크기 비교한 후 index 1의 값이 나머지index의 값보다 크다면 스왑한다.

{2,8,4,5,7}  -- 시작

{2,4,8,5,7}  -- 1과 2비교

{2,4,8,5,7}  -- 1과 3비교

{2,4,8,5,7}  -- 1과 4비교

 

3번째 싸이클

index 2번의 값과 index 3 ~ 4번의 크기 비교한 후 index 2의 값이 나머지index의 값보다 크다면 스왑한다.

{2,4,8,5,7}  -- 시작

{2,4,5,8,7}  -- 2과 3비교

{2,4,5,8,7}  -- 2과 4비교

 

4번째 싸이클

index 3번의 값과 index 4번의 크기 비교한 후 index 3의 값이 index4의 값보다 크다면 스왑한다.

{2,4,5,8,7}  -- 시작

{2,4,5,7,8}  -- 3과 4비교

 

"반복문 종료"

 

결과값

arr = {2,4,5,7,8}

 

 

끝!

 

반응형

댓글