반응형
선택정렬 알고리즘
package arrayEx;
import java.util.Arrays;
public class ArraySort {
public static void main(String[] args) {
int[] arr = {8,4,2,5,7};
// 선택정렬 알고리즘
// i j
// 0 1234
// 1 234
// 2 34
// 3 4
for(int i = 0; i < arr.length-1; i++) {
for(int j = i+1; j < arr.length; j++) {
if(arr[i] > arr[j]) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
System.out.println(Arrays.toString(arr)); //배열 출력
}
}
배열 {8,4,2,5,7}은 index 0번부터 4번까지 5의 길이를 갖는 배열이다.
반복문의 순서대로 첫번째 싸이클의 진행은
index 0번의 8과 index 1 ~ 4번(4,2,5,7)의 크기 비교한 후 index 0의 값이 나머지index의 값보다 크다면 스왑한다.
{8,4,2,5,7} -- 시작
{4,8,2,5,7} -- 0과 1비교
{2,8,4,5,7} -- 0과 2비교
{2,8,4,5,7} -- 0과 3비교
{2,8,4,5,7} -- 0과 3비교
2번째 싸이클
index 1번의 값과 index 2 ~ 4번의 크기 비교한 후 index 1의 값이 나머지index의 값보다 크다면 스왑한다.
{2,8,4,5,7} -- 시작
{2,4,8,5,7} -- 1과 2비교
{2,4,8,5,7} -- 1과 3비교
{2,4,8,5,7} -- 1과 4비교
3번째 싸이클
index 2번의 값과 index 3 ~ 4번의 크기 비교한 후 index 2의 값이 나머지index의 값보다 크다면 스왑한다.
{2,4,8,5,7} -- 시작
{2,4,5,8,7} -- 2과 3비교
{2,4,5,8,7} -- 2과 4비교
4번째 싸이클
index 3번의 값과 index 4번의 크기 비교한 후 index 3의 값이 index4의 값보다 크다면 스왑한다.
{2,4,5,8,7} -- 시작
{2,4,5,7,8} -- 3과 4비교
"반복문 종료"
결과값
arr = {2,4,5,7,8}
끝!
반응형
'Dev Story 💻 > Java' 카테고리의 다른 글
[Java] 무한의 길이를 갖는 배열 만들기 (0) | 2021.11.28 |
---|---|
[Java] Self-number 알고리즘과 합 (0) | 2021.11.27 |
[Java] Random Class, Math Class를 이용하여 무작위 숫자 출력하기 (0) | 2021.11.24 |
[Java] 반복문 for문을 이용한 별 찍기(*) (1) | 2021.11.19 |
Java 시작하기 (0) | 2021.11.14 |
댓글