선택 정렬(Selection Sort)
선택 정렬의 수행 시간은 O(n^2)이다. 수를 비교하는 횟수가 전체 시간을 좌우한다. 코드는 다음과 같다.
// Sort.java
public class Sort {
public void selectionSort(int data[], int MAX){
int temp, minIndex;
for(int i=0; i<MAX-1; i++){
minIndex = i;
for(int j=i+1; j<MAX; j++){
if(data[minIndex] > data[j]){
minIndex = j;
}
}
temp = data[minIndex];
data[minIndex] = data[i];
data[i] = temp;
}
}
}
//MainApp.java
public class MainApp {
public static void main(String args[]){
int data[] = {8, 31, 48, 73, 3, 65, 20, 29, 11, 15};
System.out.println("Previous");
for (int element: data) {
System.out.print(element + " ");
}
Sort sort = new Sort();
sort.selectionSort(data, data.length);
System.out.println("\nAfter");
for (int element: data) {
System.out.print(element + " ");
}
}
}
// 출력 결과
Previous
8 31 48 73 3 65 20 29 11 15
After
3 8 11 15 20 29 31 48 65 73