본문 바로가기

알고리즘

버블정렬

버블정렬 알고리즘 (BubbleSort Algorithm)

  • 서로 인접한 두 원소를 비교한 뒤 조건이 맞으면 교환한다.
  • 이것을 1회전 완료하면 정렬된 원소 1개가 나온다.
  • 이를 n -1 번 반복하면 모든 원소가 정렬된다.

 

 


 

Code

#include <stdio.h>

void bubbleSort(int arr[], int length) { // 배열괴 배열의 길이를 받는다
	int temp = 0; // 임시 저장공간 

	for (int i = 0; i < length - 1; i++) { // 대회전을 n -1번 반복한다. ( n == 원소의 개수)
		for (int j = 0; j <  length - i - 1; j++) { // j : 0 ~ 배열의 마지막 - 1 (1 회전 기준)  
			if (arr[j] > arr[j + 1]) { // 서로 인접한 두 원소 비교
				// 참이면 교환
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}

int main() {
	int arr[] = { 5, 7, 1, 2, 8, 9, 10 };

	bubbleSort(arr, 7);

	// 결과 출력
	printf("정렬된 결과: [");
	for (int i = 0; i < 7; i++)	{
		printf("%d ", arr[i]);
		printf(" ");
	}
	printf("]");

	return 0;
}

 

시간복잡도 : O(n^2)

'알고리즘' 카테고리의 다른 글

stack  (0) 2023.04.28
quick sort  (0) 2023.04.20
삽입 정렬 알고리즘  (0) 2023.04.12
선택 정렬 알고리즘  (0) 2023.04.11
재귀호출  (0) 2023.04.04