코드
//배열 선언
int[] arr = new int[5];
//배열에 데이터 넣기
arr[0]=100;
arr[1]=5;
arr[2]=60;
arr[3]=1000;
arr[4]=30;
//비교 기준 값을 넣는 변수
int pivot;
//1번 인덱스 부터 반복
//기준 값 꺼내기
for(int i=1;i<arr.length;i++)
{
//기준 값 지정
pivot = arr[i];
int j;
//0번 인덱스 부터 반복
//비교 값 꺼내기
for(j=i-1;j>=0;j--)
{
//비교 값이 기준 값보다 크다면
if(arr[j] > pivot)
{
//비교 값을 한 칸 뒤로 넣는다
arr[j + 1] = arr[j];
//원래 비교 값 자리에 기준 값을 넣는다.
arr[j] = pivot;
}
}
}
디버깅표
i |
i<arr |
arr[i] |
pivot |
j |
j>=0 |
arr[j] |
arr[j]>pivot |
arr[j+1] = arr[j] |
arr[j] = pivot |
1 |
T |
5 |
5 |
0 |
T |
100 |
T |
{100,100,60,1000,30} |
{5,100,60,1000,30} |
|
|
|
|
-1 |
F |
|
|
|
|
2 |
T |
60 |
60 |
1 |
T |
100 |
T |
{5,100,100,1000,30} |
{5,60,100,1000,30} |
|
|
|
|
0 |
T |
5 |
F |
|
|
|
|
|
|
-1 |
F |
|
|
|
|
3 |
T |
1000 |
1000 |
2 |
T |
100 |
F |
|
|
|
|
|
|
1 |
T |
60 |
F |
|
|
|
|
|
|
0 |
T |
5 |
F |
|
|
|
|
|
|
-1 |
F |
|
|
|
|
4 |
T |
30 |
30 |
3 |
T |
1000 |
T |
{5,60,100,1000,1000} |
{5,60,100,30,1000} |
|
|
|
|
2 |
T |
100 |
T |
{5,60,100,100,1000} |
{5,60,30,100,1000} |
|
|
|
|
1 |
T |
60 |
T |
{5,60,60,100,1000} |
{5,30,60,100,1000} |
|
|
|
|
0 |
T |
5 |
F |
|
|
|
|
|
|
-1 |
F |
|
|
|
|
5 |
F |
|
|
|
|
|
|
|
|