본문 바로가기
programming/java

[java] 선택정렬

by 몽구스_ 2021. 1. 1.
728x90

선택정렬이란, 

배열에서 가장 큰 숫자를 맨뒤로 보내고

맨뒤를 제외한 나머지 숫자에서 다시 가장 큰 숫자를 찾아 그 맨뒤로 보낸다.

이것을 배열만큼 반복하여 정렬하는 방법이다.

 

정렬되지 않은 것 중에서의 맨뒤인덱스 l이다.

max에 최대값을 담고 maxI에는 최대값의 인덱스를 담아

이것을 arr[l]과 바꾸어 맨뒤와 최대값의 자리를 바꾼다.

그럼 맨뒤는 정렬이 완료된 상태이므로 l--;을 빼주어

그것을 제외한 배열중에서 다시 최대값을 찾아 정렬을 한다.

 

public class SelectionSort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr = {9,4,3,1,6,10,2,8};
		int[] newArr = null;
		newArr = sort(arr);
		
		for(int data : newArr) {
			System.out.print(data + " ");
		}
		
		

	}
	public static int[] sort(int[] arr) {
		int max = 0;
		int maxI = 0;
		int l = arr.length - 1;
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<l+1; j++) {
				if(arr[j] > max) {
					max = arr[j];
					maxI = j;
				}
			}
			arr[maxI] = arr[l];
			arr[l] = max;
			l--;
			max = 0;
		}
		return arr;
	}
}

 

콘솔창

'programming > java' 카테고리의 다른 글

[java] JDBC  (0) 2021.01.05
[java] 자료구조 스택 코드 구현  (0) 2021.01.05
[java] Cipher암호화하여 문자열 출력하기  (0) 2021.01.01
[java] split, trim  (0) 2021.01.01
[java] string배열 순서대로 글자만 역순 출력  (0) 2021.01.01

댓글