본문 바로가기
Back-End/Java

Java 과제 - 정렬 알고리즘 코드 작성

by newny 2023. 3. 14.
반응형

정렬(Sort)

정렬 유형 : 오름차순과 내림차순
정렬 방식

  • 삽입정렬(insertion sort)
  • 선택정렬(selection sort)
  • 버블정렬(bubble sort)

 

선택정렬(selection sort) 알고리즘

int[] num = {9, 8, 7, 6, 5}; //오름차순 정렬하기

cycle-1
0 - 1 인덱스 비교 -> 8 9 7 6 5
0 - 2 인덱스 비교 -> 7 9 8 6 5
0 - 3 인덱스 비교 -> 6 9 8 7 5
0 - 4 인덱스 비교 -> 5 9 8 7 6

cycle-2
1 - 2 인덱스 비교 -> 5 8 9 7 6
1 - 3 인덱스 비교 -> 5 7 9 8 6
1 - 4 인덱스 비교 -> 5 6 9 8 7

cycle-3
2 - 3 인덱스 비교 -> 5 6 8 9 7
2 - 4 인덱스 비교 -> 5 6 7 9 8

cycle-4
3 - 4 인덱스 비교 -> 5 6 7 8 9
 

[코드작성]

for(int i=0; i<num.length-1; i++) {
    for(int j=i+1; j<num.length; j++) {
        if(num[i]>num[j]) {
            int temp = num[i];
            num[i] = num[j];
            num[j] = temp;
        }
    }
}

 

버블정렬(bubble sort) 알고리즘

int[] num = {9, 8, 7, 6, 5}; //오름차순 정렬하기

cycle-1
0 - 1 인덱스 비교 -> 8 9 7 6 5
2 - 3 인덱스 비교 -> 8 7 6 9 5
1 - 2 인덱스 비교 -> 8 7 9 6 5
3 - 4 인덱스 비교 -> 8 7 6 5 9

cycle-2
0 - 1 인덱스 비교 -> 7 8 6 5 9
1 - 2 인덱스 비교 -> 7 6 8 5 9
2 - 3 인덱스 비교 -> 7 6 5 8 9

cycle-3
0 - 1 인덱스 비교 -> 6 7 5 8 9
1 - 2 인덱스 비교 -> 6 5 7 8 9

cycle-4
0 - 1 인덱스 비교 -> 5 6 7 8 9
 

[코드작성]

for(int i=0; i<num.length; i++) {
    for(int j=1; j<num.length-i; j++) {
        if(num[j-1]>num[j]) {
            int temp = num[j-1];
            num[j-1] = num[j];
            num[j] = temp;
        }
    }
}
반응형

'Back-End > Java' 카테고리의 다른 글

Java(3)  (0) 2023.03.15
Java 예제(1)  (0) 2023.03.14
Java(2)  (0) 2023.03.14

댓글