산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 선택 정렬: 단계별 예제와 전체 코드

선택 정렬이란?

선택 정렬은 남은 요소 중 가장 작은 것을 반복적으로 선택해 제자리에 놓는 직관적인 비교 기반 알고리즘입니다. 큰 데이터셋에서는 가장 빠르지 않지만, 단순함 덕분에 교육용과 작은 배열에 이상적입니다.

알고리즘 작동 원리

자바 구현

아래는 선택 정렬 알고리즘을 정수 배열에 시연하는 간결한 자바 프로그램입니다. 정렬 전후 배열과 각 패스의 중간 단계를 출력합니다.

package com.guru99;
public class SelectionSortAlgo {
    public static void main(String[] args) {
        int[] myArray = {860, 8, 200, 9};
        System.out.println("------선택 정렬 전------");
        printArray(myArray);
        selection(myArray); // 배열 정렬
        System.out.println("-----선택 정렬 후-----");
        printArray(myArray);
    }

    public static void selection(int[] array) {
        for (int i = 0; i < array.length - 1; i++) {
            System.out.println("정렬 패스 번호 " + (i + 1));
            int index = i;
            for (int j = i + 1; j < array.length; j++) {
                System.out.println("비교 " + array[index] + " 와 " + 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("요소 교환: 교환 후 새 배열");
            printArray(array);
        }
    }

    private static void printArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
        System.out.println();
    }
}

샘플 출력

------선택 정렬 전-----
860 8 200 9
정렬 패스 번호 1
비교 860 와 8
860 is greater than 8
비교 8 와 200
비교 8 와 9
요소 교환: 교환 후 새 배열
8 860 200 9
정렬 패스 번호 2
비교 860 와 200
860 is greater than 200
비교 200 와 9
200 is greater than 9
요소 교환: 교환 후 새 배열
8 9 200 860
정렬 패스 번호 3
비교 200 와 860
요소 교환: 교환 후 새 배열
8 9 200 860
-----선택 정렬 후-----
8 9 200 860

성능 참고사항

선택 정렬은 입력에 관계없이 O(n²) 비교를 수행하며 최대 O(1) 추가 메모리를 사용합니다. 결정론적 동작 덕분에 메모리가 제약된 환경에 적합합니다.

java

  1. Java 배열 마스터하기: 선언, 초기화, 조작 완벽 가이드
  2. Java Hello World: 첫 Java 프로그램 작성 단계별 가이드
  3. Java 캡슐화 완전 가이드: 실전 예제와 핵심 개념
  4. Java String length() 메서드: 문자열 크기 구하기 (예제 포함)
  5. Java String.charAt() 완전 이해: 문법, 반환타입, 예외, 실전 예제
  6. Java String.contains() 메서드: 부분문자열 포함 여부 확인 (실전 예제)
  7. Java String.endsWith() 마스터: 문자열 접미사 확인 예제
  8. Java BufferedReader로 파일 읽기: 실전 가이드와 예제
  9. 자바 버블 정렬 마스터하기: 명확한 예제와 단계별 설명
  10. 자바 삽입 정렬 알고리즘: 명확한 예제와 단계별 가이드