JAVA/개념정리

삽입정렬 - 디버깅표

hyun9_9 2023. 11. 28. 10:10

삽입정렬 크고 작은 값을 알땐 불리하고 성능 편차가 크다
대부분의 원소들이 정렬되어있다면 효율적이고 안정 정렬(같은값일때 위치 변경 x) 이다


i     i<arr.length     pivot     j=i-1      j>-1    arr[j]>pivot
--------------------------------------------------------------
1         T               5           0          T           T              배열 값 서로 변경 [5 100 60 1000 30]
                                        -1         F
2         T              60          1         T            T              배열 값 서로변경  [5 60 100 1000 30]         
  0         T            F
                                        -1         F
3         T             1000       2         T            F
                                         1         T            F
                                         0         T            F
                                        -1         F
4         T              30          3         T            T              배열 값 서로변경  [5 60 100 30 1000]   
                                         2         T            T              배열 값 서로변경  [5 60 30 100 1000]   
                                         1         T            T              배열 값 서로변경  [5 30 60 100 1000]  
                                         0         T            F
                                        -1         F
5         F 
                              

 

 

public class Test01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int []arr=new int [5];
		arr[0]=100;
		arr[1]=5;
		arr[2]=60;
		arr[3]=1000;
		arr[4]=30;
		
		for(int i=1;i<arr.length;i++) {
			int pivot =arr[i];
			for(int j=i-1;j>-1;j++) {
				if(arr[j]>pivot) {
					arr[j+1]=arr[j];
					arr[j]=pivot;
				}
			}
		}
		for(int a: arr) {
			System.out.println(" "+a);
		}
		
	}

}