-가장 간단한 알고리즘
-실생활에서 가장 많이 사용하는 알고리즘
-가장 작은 수를 찾아 맨앞에 놓는다.
1. i=0
2. i가 n-2가 되면 끝낸다.
3. 배열의 i항부터 n-1항까지 중 최소값을 찾아서 그항을 min에 저장한다.
4. i를 하나 증가시키고 2로 돌아간다.
public class SelectArray {
public int[] selectArray() {
int a[] = new int[]{12,5,1,23,44,11};
int temp =0 ;
int index =0; // 위치저장
for(int i=0 ; i<a.length ; i++){
temp = a[i];
index = i;
for(int j =i+1 ; j <a.length ; j++){
if(temp > a[j]){
temp = a[j];
index = j; }
}
a[index] = a[i];
a[i] = temp;
System.out.println("selectArray():"+ a[0]+","+ a[1]+","+ a[2]+","+ a[3]+","+ a[4]+","+ a[5]);
}
return a;
}
public static void main(String[] args) {
System.out.println(selectArray());
}
}
결과)
selectArray():1,5,12,23,44,11
selectArray():1,5,12,23,44,11
selectArray():1,5,11,23,44,12
selectArray():1,5,11,12,44,23
selectArray():1,5,11,12,23,44
selectArray():1,5,11,12,23,44
배열의 앞부분부터 정렬을 차례로 한다.
큰 레코드와 작은키를 직접 정렬할 때 굉장히 유용하다.(교환 횟수가 최대 N번이므로 교환의 횟구가 가장 적은 편)