본문 바로가기
Programming/Java

선택 정렬 알고리즘

by 공부합시다홍아 2020. 10. 20.

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

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

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

'Programming > Java' 카테고리의 다른 글

[JAVA] - 출력과 선언 규칙  (0) 2023.10.25
JAVA 11 jdk 설치 방법  (0) 2023.10.25
1~100범위 안에 가장 큰 소수 구하기  (0) 2020.10.20
push, pop  (0) 2020.10.20
외부클래스  (0) 2020.10.20