C언어 거품정렬 구현

1 개요[ | ]

C 거품정렬 구현
기본형
#include <stdio.h>
void bubble_sort(int a[], int size) {
    int i, j, temp;
    for(i=0; i<size-1; i++) {
		for(j=0; j<size-i-1; j++) {
			if(a[j] > a[j+1]) {
				temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;
			}
		}
	}
}
int main() {
	int arr[] = {9,1,22,4,0,-1,1,22,100,10};
	int size = sizeof(arr)/sizeof(int);
	bubble_sort(arr, size);
	for(int i=0; i<size; i++) printf("%d ", arr[i]);
	// -1 0 1 1 4 9 10 22 22 100 
}
개선형 (swapped 플래그 적용)
#include <stdio.h>
void bubble_sort(int a[], int size) {
    int i, j, temp, swapped;
    for(i=0; i<size-1; i++) {
        swapped = 0;
		for(j=0; j<size-i-1; j++) {
			if(a[j] > a[j+1]) {
				temp = a[j]; a[j] = a[j+1]; a[j+1] = temp;
				swapped = 1;
			}
		}
		if( swapped == 0 ) break;
	}
}
int main() {
	int arr[] = {9,1,22,4,0,-1,1,22,100,10};
	int size = sizeof(arr)/sizeof(int);
	bubble_sort(arr, size);
	for(int i=0; i<size; i++) printf("%d ", arr[i]);
	// -1 0 1 1 4 9 10 22 22 100 
}

2 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}