본문 바로가기
Java/Java 알고리즘

[Java] 선택정렬/버블정렬(오름차순/내림차순)

by ProSeraphina 2020. 7. 6.

(0. 정렬 전 배열 선언)

1
2
3
4
5
int[] arr={010402050};
 
        System.out.println("정렬 전:");
        for(int i:arr){
            System.out.print(i+" ");
cs

 

 

1.선택정렬: 맨 처음 고정, 맨 마지막까지 비교 → (n-1)번 실행

(1-1. 오름차순)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//오름차순(ASC)
        System.out.println("\n오름차순 정렬 후:");
        for(int i=0;i<arr.length-1;i++) {
            for(int j=i+1;j<arr.length;j++) { //j:비교하는 숫자, i번째의 오른쪽=>i+1
                if(arr[i]>arr[j]) {   
                    int tmp=arr[i];  //변수값 서로 바꿀때는 tmp에 미리 값 1개 옮겨놓기!
                    arr[i]=arr[j];
                    arr[j]=tmp;
                }
            }
        }
        for(int i:arr) {
            System.out.print(i+" ");
        }
cs

 

(1-2. 내림차순)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//내림차순(DESC)
        System.out.println("\n내림차순 정렬 후:");
        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;
                }
            }
        }
        for(int i:arr){
            System.out.print(i+" ");
        }
cs

 

 

2.버블정렬: 맨 마지막 고정, 두 자리씩 비교 → (n-1)번 실행

(2-1. 오름차순)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//오름차순(ASC)
     System.out.println("\n오름차순 정렬후:");    
     for(int i=0;i<arr.length-1;i++) {
         for(int j=0;j<arr.length-1-i;j++){
             if(arr[j]>arr[j+1]) {
                 int tmp=arr[j];    
                 arr[j]=arr[j+1];
                 arr[j+1]=tmp;
             }   
         }
     }   
     for(int i:arr) {
         System.out.print(i+" ");
         }
cs

 

(2-2. 내림차순)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//내림차순(DESC)
System.out.println("\n내림차순 정렬후:");     
        for(int i=0;i<arr.length-1;i++) {
            for(int j=0;j<arr.length-1-i;j++){
                if(arr[j]<arr[j+1]) {
                    int tmp=arr[j];    
                    arr[j]=arr[j+1];
                    arr[j+1]=tmp;
                }    
            }
        }    
        for(int i:arr) {
            System.out.print(i+" ");
            }
cs

 

결과창)

 

'Java > Java 알고리즘' 카테고리의 다른 글

[Java] 페이지 나누기  (0) 2020.07.09
[Java] 가위바위보 게임  (0) 2020.07.06
[Java] 중복없는 난수발생  (1) 2020.07.03
[Java] 달력 만들기 / 시간 표시  (2) 2020.07.02

댓글