선택 정렬(Selection Sort)

2015. 10. 26. 01:08·JAVA/기타



- 주어진 데이터 중 최소값을 찾음

- 최소값을 맨 앞에 위치한 값과 교환

- 정렬된 데이터를 제외한 나머지 데이터를 같은 방법으로 정렬

- 시간복잡도 : O(n^2)



 [1회전]


 [2회전]


 [3회전]


 [4회전]

선택 정렬의 장점

- 데이터의 양이 적을 때 좋은 성능을 나타냄.

- 작은 값을 선택하기 위해서 비교는 여러번 수행되지만 교환횟수가 적다.


선택 정렬의 단점

- 100개 이상의 자료에 대해서는 속도가 급격히 떨어져 적절히 사용되기 힘들다.


JAVA 소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Selection {
    public void sort(int[] data){
        int size = data.length;
        int min; //최소값을 가진 데이터의 인덱스 저장 변수
        int temp;
        
        for(int i=0; i<size-1; i++){ // size-1 : 마지막 요소는 자연스럽게 정렬됨
            min = i;
            for(int j=i+1; j<size; j++){
                if(data[min] > data[j]){
                    min = j;
                }
            }
            temp = data[min];
            data[min] = data[i];
            data[i] = temp;
        }
    }
    public static void main(String[] args) {
            
        Selection selection = new Selection();
        
        int data[] = {66, 10, 1, 99, 5};
 
        selection.sort(data);
 
        for(int i=0; i<data.length; i++){
            System.out.println("data["+i+"] : " + data[i]);
        }
    }
}
Colored by Color Scripter
cs


'JAVA > 기타' 카테고리의 다른 글

Java - String(문자열) .isEmpty() vs .isBlank() 차이점  (0) 2022.12.15
Springboot에서 CircuitBreaker 설명 및 사용법  (0) 2022.11.29
퀵 정렬(Quick Sort)  (9) 2015.10.26
삽입 정렬(Insertion Sort)  (5) 2015.10.26
버블 정렬(Bubble Sort)  (2) 2015.10.25
'JAVA/기타' 카테고리의 다른 글
  • Springboot에서 CircuitBreaker 설명 및 사용법
  • 퀵 정렬(Quick Sort)
  • 삽입 정렬(Insertion Sort)
  • 버블 정렬(Bubble Sort)
99CORN
99CORN
1990.09.17
  • 99CORN
    넌 잘하고 있어
    99CORN
  • 전체
    오늘
    어제
    • -
      • IT
        • 잔기술
        • 네트워크
        • 면접 예상 질문
      • JAVA
        • 알고리즘
        • 기타
      • PHP
        • 기초
      • C#
        • 기초
      • 개발메모
        • 간단정리
        • WEB
        • 면접준비
        • 기타
      • 블랙홀
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • forl
  • 공지사항

  • 인기 글

  • 태그

    docker
    선택정렬
    SERVER 환경변수
    Java
    stack
    console.table()
    JavaScript
    JDK Dynamic Proxy
    php 배열관련 함수
    기본문법 정리
    알고리즘
    sort
    http 상태
    graphQL
    캐시스탬피드
    웹개발
    vParam
    Queue
    격리수준
    자바
    c#
    web
    HTTP
    https status code
    php
    springboot + graphql
    JsonVue
    OpenFeign
    문자열 대표 클래스
    Algorithm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
99CORN
선택 정렬(Selection Sort)
상단으로

티스토리툴바