Java - 정렬(삽입, 선택, 버블)

Posted 04 21, 2013 13:21, Filed under: Language/JAVA

# 정렬 알고리즘


# Sort.java

public class Sort{

    private static final int[] ARRAY_NUMBER = new int[]{10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
    
    /**
     * # 삽입 정렬
     */
    public static void calcInsertionSort(int[] array){
        int min;
        int i,j;

        for(int k = 0; k<array.length; k++){
            System.out.print(array[k]+" ");
        }

        for(i=1; i<array.length; i++){
            min = array[i];
            for(j=i; j>0; j--){
                if(array[j-1] > min){
                    array[j] = array[j-1];
                }else{
                    break;
                }
            }
            array[j] = min;
        }
        System.out.println();
        for(int k = 0; k<array.length; k++){
            System.out.print(array[k]+" ");
        }
    }
/**
10 9 8 7 6 5 4 3 2 1 
1 2 3 4 5 6 7 8 9 10     
 */
    
    /**
     * # 선택 정렬
     */
    public static void calcSelectionSort(int[] array){
        int min;
        int minIndex;
        int i,j;
        int comparisonCount =0;

        for(int k = 0; k<array.length; k++){
            System.out.print(array[k]+" ");
        }

        for(i=0; i<array.length; i++){
            min = array[i];
            minIndex = i;
            for(j=i+1; j<array.length; j++){
                comparisonCount++;
                if(min > array[j]){
                    min = array[j];
                    minIndex = j;
                }
            }
            array[minIndex] = array[i];
            array[i] = min;
            System.out.println("cycle "+comparisonCount);
            for(int k = 0; k<array.length; k++){
                System.out.print(array[k]+" ");
            } 
        }
    }
/**
10 9 8 7 6 5 4 3 2 1 cycle 9
1 9 8 7 6 5 4 3 2 10 cycle 17
1 2 8 7 6 5 4 3 9 10 cycle 24
1 2 3 7 6 5 4 8 9 10 cycle 30
1 2 3 4 6 5 7 8 9 10 cycle 35
1 2 3 4 5 6 7 8 9 10 cycle 39
1 2 3 4 5 6 7 8 9 10 cycle 42
1 2 3 4 5 6 7 8 9 10 cycle 44
1 2 3 4 5 6 7 8 9 10 cycle 45
1 2 3 4 5 6 7 8 9 10 cycle 45
1 2 3 4 5 6 7 8 9 10     
 */
    
    /**
     * # 버블 정렬
     */
    public static void calcBubbleSort(int[] array){
        int i,j;
        int temp;
        int t;
        int comparisonCount =0;

        for(int k = 0; k<array.length; k++){
            System.out.print(array[k]+" ");
        }

        for(i=array.length-1; i>0; i--){
            for(j=1; j<=i; j++){
                comparisonCount++;
                if(array[j-1] > array[j]){
                    temp = array[j-1];
                    array[j-1] = array[j];
                    array[j] = temp;
                }
            }
            System.out.println("cycle "+comparisonCount);
            for(int k = 0; k<array.length; k++){
                System.out.print(array[k]+" ");
            } 
        }
    }
/**
10 9 8 7 6 5 4 3 2 1 cycle 9
9 8 7 6 5 4 3 2 1 10 cycle 17
8 7 6 5 4 3 2 1 9 10 cycle 24
7 6 5 4 3 2 1 8 9 10 cycle 30
6 5 4 3 2 1 7 8 9 10 cycle 35
5 4 3 2 1 6 7 8 9 10 cycle 39
4 3 2 1 5 6 7 8 9 10 cycle 42
3 2 1 4 5 6 7 8 9 10 cycle 44
2 1 3 4 5 6 7 8 9 10 cycle 45
1 2 3 4 5 6 7 8 9 10 
 */
    
    public static void main(String[] arr){
        calcInsertionSort(ARRAY_NUMBER);
//        calcSelectionSort(ARRAY_NUMBER);
//        calcBubbleSort(ARRAY_NUMBER);
    }
}


※ 위 내용은, 여러 자료를 참고하거나 제가 주관적으로 정리한 것입니다.
   잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
04 21, 2013 13:21 04 21, 2013 13:21


Trackback URL : http://develop.sunshiny.co.kr/trackback/878

Leave a comment
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

« Previous : 1 : ... 138 : 139 : 140 : 141 : 142 : 143 : 144 : 145 : 146 : ... 648 : Next »

Recent Posts

  1. HDFS - Python Encoding 오류 처리
  2. HP - Vertica ROS Container 관련 오류...
  3. HDFS - Hive 실행시 System Time 오류
  4. HP - Vertica 사용자 쿼리 이력 테이블...
  5. Client에서 HDFS 환경의 데이터 처리시...

Recent Comments

  1. 안녕하세요^^ 배그핵
  2. 안녕하세요^^ 도움이 되셨다니, 저... sunshiny
  3. 정말 큰 도움이 되었습니다.. 감사합... 사랑은
  4. 네, 안녕하세요. 댓글 남겨 주셔서... sunshiny
  5. 감사합니다 많은 도움 되었습니다!ㅎㅎ 프리시퀸스

Recent Trackbacks

  1. print & mail services print & mail services 13 07
  2. montana fishing vacations montana fishing vacations 13 07
  3. decks colorado decks colorado 13 07
  4. phoenix az closet organizers phoenix az closet organizers 13 07
  5. useful reference useful reference 13 07

Calendar

«   07 2020   »
      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 29 30 31  

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. 오라클 클럽
  4. API - Java
  5. Apache Hadoop API
  6. Apache Software Foundation
  7. HDFS 생태계 솔루션
  8. DNSBL - Spam Database Lookup
  9. Ready System
  10. Solaris Freeware
  11. Linux-Site
  12. 윈디하나의 솔라나라

Site Stats

TOTAL 3006588 HIT
TODAY 29 HIT
YESTERDAY 1048 HIT