C++ 거품정렬 구현

1 개요[ | ]

C++ 거품정렬 구현
기본형
#include <iostream>
void bubble_sort(int a[], int size) {
    int i, j;
    for(i=0; i<size-1; i++) {
    	for(j=0; j<size-i-1; j++) {
    		if(a[j] > a[j+1]) std::swap(a[j], a[j+1]);
    	}
    }
}
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++) std::cout << arr[i] << " ";
    // -1 0 1 1 4 9 10 22 22 100 
}
개선형 (swapped 플래그 적용)
#include <iostream>
void bubble_sort(int a[], int size) {
    int i, j;
    bool swapped;
    for(i=0; i<size-1; i++) {
        swapped = false;
    	for(j=0; j<size-i-1; j++) {
    		if(a[j] > a[j+1]) {
    			std::swap(a[j], a[j+1]);
    			swapped = true;
    		}
    	}
    	if( !swapped ) 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 x: arr) std::cout << x << " ";
    // -1 0 1 1 4 9 10 22 22 100 
}

2 같이 보기[ | ]

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