본문 바로가기

자료구조

[자료구조] 선택 정렬(Selection Sort)이란 with JAVA

 

 

 

 

🌸선택 정렬(Insertion Sort)이란?

선택 정렬은 기본 정렬 중 하나입니다.

주어진 배열에서 최솟값을 찾은 후 맨 앞에 위치한 값과 교체해줍니다.

나머지 값들도 같은 방법으로 교체해주는 알고리즘입니다.

 

 

 

선택 정렬 알고리즘 예제

 

 

 

선택 정렬 알고리즘 코드(JAVA)

public class SelectionSort {

	public static void main(String[] args) {
		
		int arr[] = {6,11,1,3,5}; //정렬할 배열
		int n = arr.length; //배열의 길이
		
		//최솟값을 알아내는 for문
		for(int i=0; i< n-1; i++) {
			int minIndex = i;
			for(int j=i+1; j<n; j++) { 
				if(arr[j] < arr[minIndex]) {
					minIndex = j;
				}
			}
			
			//최솟값과 현재값의 위치를 교체해준다.
			int temp = arr[minIndex];
			arr[minIndex] = arr[i];
			arr[i] = temp;
		}
		
		//arr출력
		String []in = {"1번째","2번째","3번재","4번째","5번째"};
		for(int i=0; i<arr.length; i++) {
			System.out.println(in[i]+"\t"+arr[i]);
		}
	}

}

- 선택정렬은 O(n^2) 만큼의 시간이 걸립니다.

- 선택 정렬은 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용시 성능이 좋다는 장점이 있습니다.

 

 

 

반응형