ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정렬알고리즘
    Java 2021. 11. 22. 09:46

    1. 버블정렬(BubbleSort)

    ㅇㅇㅇㅇㄴ

     

     

     

    2. 선택정렬(SelectionSort)

    import java.util.Arrays;
    import java.util.Random;
    
    public class ArraySelectionSort {
    
    	public static void main(String[] args) {
    		// 1~100사이 난수를 10개 가진 배열 생성
    		Random random = new Random();
    		int data[] = new int[10];
    		for(int idx=0; idx<data.length; idx++) {
    			data[idx] = random.nextInt(100)+1; 
    		}
    		String arrTxt = Arrays.toString(data);
    		System.out.println("===정렬전===");
    		System.out.println(arrTxt);
    		
    		// 선택정렬
    		for(int i=0; i<data.length-1; i++) { // i=1,2,3...
    			for(int j=i+1; j<data.length; j++) { // 1,2 & 1,3 & 1,4 ... 비교
    				if(data[i] > data[j]) {
    					int temp = data[i];
    					data[i] = data[j];
    					data[j] = temp;					
    				}
    			}
    	
    		}
    		// 정렬후 배열 출력
    		System.out.println("===정렬후===");
    		System.out.println(Arrays.toString(data));
    		
    	}
    }

    Arrays.toString(data) 를 활용하면 출력할때

    System.out.println( ) 만 해도 [5, 16, 19, 22, 24, 38, 74, 74, 80, 80] 형식으로 출력 가능

     

    원래는

    for(int i:data){

      System.out.print(i + "\t") 

    이렇게 출력해야함

     

     

     

    3. 삽입정렬

     1부터 n까지 Index를 설정하여 현재위치보다 아래쪽을 순회하며 현재위치의 값을 현재위치보다 아래쪽으로 순회하며 알맞은 위치에 넣어주는 정렬알고리즘

    public class InsertionSort {
    
    	public static void main(String[] args) {
    		Random random = new Random();
    		int data[] = new int[10];
    		
    		for(int i=0; i<data.length; i++) {
    			data[i] = random.nextInt(100) +1;
    		}
    		System.out.println("정렬전=" + Arrays.toString(data));
    		
    		// 정렬의 기준점이 되는 인덱스
    		int k;
    		for(int i=1; i<data.length; i++) {
    			int tmp = data[i]; // 11
    			
    			for(k=i-1; k>=0 && tmp<data[k]; k--) {  // tmp<data[k] 조건이 만족되면 굳이 그 앞을 실행하지 않아도 되므로..
    				data[k+1] = data[k];
    				}
    			data[k+1] = tmp;
    			}
    		System.out.println("정렬후=" + Arrays.toString(data));
    			
    		}
    		
    	}

    'Java' 카테고리의 다른 글

    객체지향 퀴즈  (0) 2021.11.24
    객체지향프로그래밍 (자바의정석)  (0) 2021.11.22
    배열  (0) 2021.11.22
    do-while문  (0) 2021.11.22
    for문/while문/switch문  (0) 2021.11.21

    댓글

Designed by Tistory.