선택 정렬(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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바