Programming/Java

선택 정렬 알고리즘

공부합시다홍아 2020. 10. 20. 19:50

배열에 저장된 값을 오름차순으로 정렬한 후 출력하는 프로그램

선택 정렬 알고리즘은 첫 번째 자료를 두 번째 자료로부터 마지막 자료까지 차례대로 비교하여 가장 작은 값을 찾아 첫 번째에 놓고, 두 번째 자료를 세 번째 자료부터 마지막 자료까지와 차례대로 비교하여 그 중 가장 작은 값을 찾아 두 번째 위치에 놓는 과정을 반복하며 정렬을 수행

1회전 수행 후 가장 작은 값의 자료가 맨 앞에 오게 되므로 그 다음 회전에서는 두 번째 자료를 가지고 비교한다.


코드

1  public class Test{
2      public static void main(String[] args){
3          int E[] = { 95, 75, 85, 100, 50 };
4          int i =0;
5          int Temp = 0;
6          do{
7              int j = i;
8              do{
9                  if( E[i] > E[j] ){
10                     Temp = E[i];
11                     E[i] = E[j];
12                     E[j] = Temp;
13                 }
14                 j++;
15             }while(j<5);
16             i++;
17          }while(i<4);
18          for(int a=0; a<5; a++){
19              System.out.printf(E[a]+"\t");
20          }
21     }
22 }

결과

50 75 85 95 100

 


설명

3열 : 5개의 요소를 갖는 정수형 배열 E를 선언하고 초기화

9~12 열 : E[i]의 값이 E[j]의 값보다 크면 10~12열을 수행한다.

10~12열 : 임시변수 Temp를 사용하여 E[i]의 값과 E[j]의 값을 교환하는 과정이다. 

14열 : j의 값을 지속적으로 누적시킨다.

15열 : i가 5보다 작은 동안 9~14열을 반복한다.

16열 : i의 값을 누적시킨다.

17열 : i가 4보다 작은 동안 4~16열을 반복한다.

18열 : 반복변수 a가 0에서 시작하여 1씩 증가하면서 5보다 작은 동안 19열을 5회 반복 수행한다.

728x90