Algorithm/C

C - 버블정렬 (bubble sort)

beomzh 2023. 7. 7. 13:09
728x90
반응형

버블 정렬(bubble sort) 알고리즘의 개념


서로 인접한 두 원소를 검사하여 정렬하는 알고리즘
인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다.
선택 정렬과 기본 개념이 유사하다.

버블 정렬은 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네 번째를, … 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬한다.


1회전을 수행하고 나면 가장 큰 자료가 맨 뒤로 이동하므로 2회전에서는 맨 끝에 있는 자료는 정렬에서 제외되고, 2회전을 수행하고 나면 끝에서 두 번째 자료까지는 정렬에서 제외된다. 이렇게 정렬을 1회전 수행할 때마다 정렬에서 제외되는 데이터가 하나씩 늘어난다.

 

# include <studio.h>

// 버블정렬
void main(){   // list 변수와 n 변수 선언
	int i , j , temp ; 변수  // i , j , temp 선언
	int a[5] = {7,9,8,10,5};   // 배열 선언
	x = sizeof(a) / sizeof(int);    // 배열 길이 구하기
	
	for ( i=0; i < x; i++){
	// i 가 0부터 배열 길이만큼 반복
		for(j=0; j<i; j++){
		// j 가 i 보다 작을때 까지 증가 
			if(list[j] < list[j+1]){
				temp = list [j];
				list[j] = list[j+1];
				list[j+1] = temp;
				// 값을 비교해 큰 값을 뒤로
			}
		}
		for(i=0; i < x; i++){
			printf("%d" ,a[i]);
		}
	}
}
출력: 5, 7, 8, 9, 10







728x90
반응형