본문 바로가기
  • 밥 하루하루
공돌이/C언어

[C언어] 버블정렬(Bubble sort)

by BobBob 2021. 10. 15.
728x90
반응형

-. 버블정렬: 큰 숫자를 오른쪽으로 정렬(오름차순)

#include <stdio.h>
void swap(int* a, int* b)
{
	int temp;
	temp = *a;
	*a = *b;
	*b = temp;
}

int main() {
	int arr[] = { 25, 10, 55, 20 };

	for (int i = 0; i < 3; i++) { // arr 배열 0부터 1까지 
		for (int j = 0; j < 3 - i; j++) {
			if (arr[j] > arr[j + 1])
				swap(&arr[j], &arr[j + 1]); // swap 함수 
		}
	}

	for (int k = 0; k < 4; k++) {
		printf("%d ", arr[k]);
	}

	printf("\n");
	return 0;
}

1. int형 arr[4]는 다음과 같음.


2. arr 두개씩 크기 비교(i = 0, j는 0부터 2까지)

2-1) i = 0, j = 0
if (arr[0] > arr[1]) => if(25> 10)
swap(&arr[0], &arr[1])

2-2) i = 0, j = 1
if(arr[1] > arr[2]) => if(25 > 55) => X

2-3) i = 0, j = 2
if(arr[2] > arr[3] => if(55> 20)
swap(&arr[2], &arr[3])


3. arr 두개씩 크기 비교 (i = 1, j는 0부터 1까지)

3-1) i = 1, j = 0
if(arr[0] > arr[1] => if(10 > 25) => X

3-2) i = 1, j = 1
if(arr[1] > arr[2] => if(25 > 20)
swap(&arr[1], &arr[2])


4. arr 두개씩 크기 비교(i = 2, j는 0부터 0까지)

4-1) i = 2, j = 0
if(arr[0] > arr[1] => if(10 > 20) => X

결과화면

728x90
반응형

댓글