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. cabo villas for rent cabo villas for rent %M
  2. buy my house fast buy my house fast %M
  3. buy my house now buy my house now %M
  4. how to sell a house quickly how to sell a house quickly 3 04
  5. cabo san lucas packages cabo san lucas packages 3 04

Calendar

«   04 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    

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 2902877 HIT
TODAY 270 HIT
YESTERDAY 1312 HIT