programming/java
[java] 선택정렬
몽구스_
2021. 1. 1. 01:59
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;
}
}
728x90
반응형