"C언어 거품정렬 구현"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
(다른 사용자 한 명의 중간 판 8개는 보이지 않습니다)
2번째 줄: 2번째 줄:
;C 거품정렬 구현
;C 거품정렬 구현


<source lang='c'>
{{소스헤더|기본형}}
<syntaxhighlight lang="C">
#include <stdio.h>
#include <stdio.h>
#define ARRAYSIZE(A) sizeof(A) / sizeof((A)[0])
void bubble_sort(int a[], int size) {
void bubble_sort(int arr[], int size) {
     int i, j, temp;
     int i, j, temp;
     for(i=0; i<size-1; i++) {
     for(i=0; i<size-1; i++) {
for(j=0; j<size-i-1; j++) {
for(j=0; j<size-i-1; j++) {
if(arr[j] > arr[j+1]) {
if(a[j] > a[j+1]) {
temp = arr[j];
temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
18번째 줄: 16번째 줄:
}
}
int main() {
int main() {
int arr[] = {9,1,22,4,-1,1,22,100,10};
int arr[] = {9,1,22,4,0,-1,1,22,100,10};
int size = ARRAYSIZE(arr);
int size = sizeof(arr)/sizeof(int);
bubble_sort(arr, size);
bubble_sort(arr, size);
for(int i=0; i<size; i++) printf("%d ", arr[i]);
for(int i=0; i<size; i++) printf("%d ", arr[i]);
// -1 1 1 4 9 10 22 22 100  
// -1 0 1 1 4 9 10 22 22 100  
}
}
</source>
</syntaxhighlight>
{{소스헤더|개선형 (swapped 플래그 적용)}}
<syntaxhighlight lang='c'>
#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
}
</syntaxhighlight>


==같이 보기==
==같이 보기==
* [[거품정렬]]
* [[거품정렬 구현]]
* [[C 삽입정렬 구현]]
* [[C 삽입정렬 구현]]
* [[거품정렬 구현]]
* [[거품정렬]]


[[분류: C]]
[[분류: C 정렬]]
[[분류: 정렬]]
[[분류: 거품정렬]]

2020년 11월 2일 (월) 02:41 기준 최신판

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 }}