선택정렬 코드
선택 정렬(selection sort)은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.
- 주어진 리스트 중에 최솟값을 찾는다.
- 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).
- 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
선택정렬을 온몸으로 표현한 댄스
선택정렬 실행 알고리즘 에니메이션
출처 : 위키백과
public class SelectionSort {
public static void main(String[] args) {
//정수배열 중에서 가장 작은 값의 위치를 찾기
int[] arr = {3,2,5,4,1};
int minPos;
int minVal;
for(int j = 0; j < arr.length; j++)
{
minVal = arr[j];
minPos = j;
for(int i = j; i < arr.length; i++)
{
if( minVal > arr[i] )
{
minVal = arr[i];
minPos = i;
}
}
//minPos위치에 있는 값과 0번 위치의 값의 자리를 바꾸세요
int tmp = arr[minPos];
arr[minPos] = arr[j];
arr[j] = tmp;
}
// //두 변수의 값을 바꾸기
// int a = 10;
// int b = 20;
// int tmp = a;
// a = b;
// b = tmp;
'프로그래밍 > JAVA' 카테고리의 다른 글
상속 개념파악하기! (0) | 2016.03.30 |
---|---|
정적 변수 (static variable) (0) | 2016.03.29 |
변수의 종류 와 사용영역 (0) | 2016.03.29 |
클래스의 메모리 구조 및 참조관계 (0) | 2016.03.28 |
[Matrix] 행렬곱 프로그래밍 (0) | 2016.03.25 |