※ 선택 정렬(Selection Sort)
- 원소중 가장 작은 원소를 찾아 선택하여 첫번 째 원소와 교환한다. 그리고 두번째 작은 원소를 찾아 두번 째 자리의 원소와 교환한다.
이런식으로 길이 n인 배열의 n-1자리의 원소와 n번째 원소의 값을 비교하여 정렬하기를 반복한다.
※ 구현
Main
public class Main {
public static void main(String[] args) {
int a[] = {69,10,30,2,16,8,31,22};
SelectionSrot ss = new SelectionSrot();
System.out.println("\n정렬할 원소 : ");
for(int i =0; i<a.length; i++){
System.out.printf(" %d ", a[i]);
}
System.out.println();
ss.Sorting(a);
}
}
SelectSort
public class SelectionSrot {
private int[] a;
public void Sorting(int[] a){
this.a=a;
int minIdx;
int minValue;
for(int i =0; i < this.a.length-1;i++){
minIdx =0;
minValue=a[i];
for(int j =i+1; j< this.a.length;j++){
if(minValue>a[j]){
minIdx =j;
minValue = a[j];
}
}
if(minIdx != 0){
swap(i, minIdx);
}
}
printSortResult();
}
private void swap(int idx, int minIdx){
int temp = a[idx];
a[idx] = a[minIdx];
a[minIdx] = temp;
}
private void printSortResult(){
for(int i =0; i<a.length; i++){
System.out.printf(" %d ", a[i]);
}
}
}
'플밍 is 뭔들 > 자료구조' 카테고리의 다른 글
07-3 퀵 정렬 (0) | 2016.11.30 |
---|---|
07-2 버블 정렬 (0) | 2016.11.30 |
06-4 신장 트리와 최소 비용 신장 트리 (0) | 2016.11.26 |
06-3 그래프의 순회 (0) | 2016.11.26 |
06-2 그래프의 구현 (0) | 2016.11.26 |