선택 정렬 Java 예제가 있는 프로그램
선택 정렬은 어떻게 작동하나요?
선택 정렬은 다음과 같은 간단한 정렬 알고리즘을 구현합니다.
- 알고리즘은 가장 낮은 요소를 반복적으로 검색합니다.
- 현재 요소를 가장 낮은 값을 갖는 요소로 교체
- 선택 정렬이 반복/전달될 때마다 요소가 교체됩니다.
Java 선택 정렬을 구현하는 프로그램
package com.guru99;
public class SelectionSortAlgo {
public static void main(String a[])
{
int[] myArray = {860,8,200,9};
System.out.println("------Before Selection Sort-----");
printArray(myArray);
selection(myArray);//sorting array using selection sort
System.out.println("-----After Selection Sort-----");
printArray(myArray);
}
public static void selection(int[] array)
{
for (int i = 0; i < array.length - 1; i++)
{ System.out.println("Sort Pass Number "+(i+1));
int index = i;
for (int j = i + 1; j < array.length; j++)
{
System.out.println("Comparing "+ array[index] + " and " + array[j]);
if (array[j] < array[index]){
System.out.println(array[index] + " is greater than " + array[j] );
index = j;
}
}
int smallerNumber = array[index];
array[index] = array[i];
array[i] = smallerNumber;
System.out.println("Swapping Elements: New Array After Swap");
printArray(array);
}
}
static void printArray(int[] array){
for(int i=0; i < array.length; i++)
{
System.out.print(array[i] + " ");
}
System.out.println();
}
}
출력:
------Before Selection Sort----- 860 8 200 9 Sort Pass Number 1 Comparing 860 and 8 860 is greater than 8 Comparing 8 and 200 Comparing 8 and 9 Swapping Elements: New Array After Swap 8 860 200 9 Sort Pass Number 2 Comparing 860 and 200 860 is greater than 200 Comparing 200 and 9 200 is greater than 9 Swapping Elements: New Array After Swap 8 9 200 860 Sort Pass Number 3 Comparing 200 and 860 Swapping Elements: New Array After Swap 8 9 200 860 -----After Selection Sort----- 8 9 200 860
