Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- array
- 개념
- TO_DATE
- controller
- 정의
- eGovFramework
- CSS
- was
- 과정평가형
- Ajax
- Oracle
- POI
- select
- eGov
- jQuery
- json
- javascript
- jsp
- 암호화
- 오류
- html
- web.xml
- spring
- Java
- mybatis
- JVM
- sql
- input
- 함수
- 태그
Archives
- Today
- Total
web developer
[JAVA] 선택정렬 (오름차순, 내림차순) 본문
728x90
728x90
선택정렬의 정의
선택 정렬은 오른쪽 리스트에서 가장 작은 숫자를 선택하여 왼쪽 리스트로 이동하는 작업을 되풀이한다.
선택 정렬은 오른쪽 리스트가 공백 상태가 될 때까지 이 과정을 되풀이하는 정렬 기법이다
선택정렬의 순서
1) 주어진 배열 중에 최소값을 찾습니다.
2) 그 값을 맨 앞에 위치한 값과 교체합니다. (pass)
3) 맨 처음 위치를 뺀 나머지 배열을 같은 방법으로 교체합니다.
4) 하나의 원소만 남을 때까지 위의 1~3 과정을 반복합니다.
선택 정렬의 장점
- 데이터의 양이 적을 때 좋은 성능을 나타냄.
- 작은 값을 선택하기 위해서 비교는 여러번 수행되지만 교환횟수가 적다.
선택 정렬의 단점
- 100개 이상의 자료에 대해서는 속도가 급격히 떨어져 적절히 사용되기 힘들다.
출처: https://devuna.tistory.com/28 [튜나 개발일기]
public class Sorting {
public static void main (String args[]) {
int data[] = {9, 6, 7, 3, 5};
for(int i=0; i<data.length-1; i++){
int min_index = i;
for(int j=i+1; j<data.length; j++){
if(data[min_index] > data[j]){
min_index = j;
}
}
int tmp = data[min_index];
data[min_index] = data[i];
data[i] = tmp;
}
for(int i=0; i<data.length; i++) {
System.out.print(data[i]);
if(i+1 != data.length) {
System.out.print(", ");
}
}
}
}
728x90
728x90
'Algorithm' 카테고리의 다른 글
[JAVA] 주어진 숫자에서 가장 큰 수 (0) | 2021.12.01 |
---|---|
[JAVA] 버블정렬(오름차순, 내림차순) (0) | 2021.12.01 |
1000미만의 자연수에서 3, 5의 배수의 총합 (0) | 2021.12.01 |