예제가 있는 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