[자바] 버블 정렬 알고리즘

오늘·2021년 3월 10일
0

문제풀기

목록 보기
16/24

버블정렬( =오름차순)
: 원소를 두 개씩 비교하고 자리를 바꾸는 정렬
: 배열 알고리즘

규칙
: 처음부터 끝까지 순회하며 모든 요소들을 비교한다
: 현재 보이는 수와 다음 값을 비교하며 큰 값을 오른쪽(끝 쪽)으로 저장한다.
: 1번과 2번, 2번과 3번...을 비교해 보내면 결국 마지막 자리에는 가장 큰 값이 저장
: 순회는 1회만 하는 것이 아니고, 옮겨지는 값이 없을 때까지 반복한다.

1. 형태

for (int i = 0; i < list.length; i++) {
	for (int j = 0; j < list.length - i - 1; j++) {
    		// 만약 j번 인덱스에 에 저장된 숫자가 다음 인덱스에 저장된 숫자보다 크다면
            	// ex. 0번 인덱스에 있는 7이 / 1번 인덱스에 있는 4 보다 크다면
		if (list[j] > list[j + 1]) {
        		// tmp 변수에 j 를 복사한다
			int temp = list[j];
           		// j 자리에는 j+1번의 숫자를 복사해주고
			list[j] = list[j + 1];
            		// j+1번의 자리에는 tmp에 저장된 j의 수를 붙여넣기 한다
			list[j + 1] = temp;
		}			
	}
}

2. 사용해보기


int list[] = { 1, 6, 7, 8, 3 };

for (int i = 0; i < list.length; i++) {
	for (int j = 0; j < list.length - i - 1; j++) {
		if (list[j] > list[j + 1]) {
			int temp = list[j];
			list[j] = list[j + 1];
			list[j + 1] = temp;
		}
	}
}

for (int i = 0; i < list.length; i++) {
	System.out.print(list[i] + ", ");
}

실행 결과


참고 : [Java] 버블 정렬 알고리즘

0개의 댓글