[자료구조] 버블정렬, 범위를 어떻게 잡지?

BEHE_LIT·2020년 1월 15일
0

삽질 스토리

목록 보기
6/19
int array[] = {30,12,39,1,59};
		int temp;
		for(int i=0; i<=3; i++) {
			if(array[i] > array[i+1]) {
				temp = array[i];
				array[i] = array[i+1];
				array[i+1] = temp;
			}
			
		}
		for(int i=0; i<=3; i++) {
			if(array[i] > array[i+1]) {
				temp = array[i];
				array[i] = array[i+1];
				array[i+1] = temp;
			}
			
		}
		for(int i=0; i<=3; i++) {
			if(array[i] > array[i+1]) {
				temp = array[i];
				array[i] = array[i+1];
				array[i+1] = temp;
			}
			System.out.println(array[i]);
			
		}
		System.out.println(array[4]);
	}

억지로 버블정렬시킨 코드인데 애초에 포문 안의 int i 변수범위 지정에서 문제가 생겼다.
버블정렬답게 비교대상인 숫자와 그 다음순번의 숫자의 대소를 비교해서 스왑 해버리는 작전인데..
문제가 i+1을 해버리니까 위의 배열 인덱스 번호 마지막이 4번인점을 고려했을때 범위를 벗어나므로 에러가 발생한다.

profile
방랑자의 현장에 오신걸 환영합니다.

0개의 댓글