반응형
안녕하세요,
오늘은 버블 소트 예시에 대해 포스팅 해보도록 하겠습니다.
버블 정렬은 시간복잡도가 O(n^2)로 그다지 효율적인 알고리즘은 아닙니다. 그럼에도 많이 사용되는 이유는 이해하기 쉬운 알고리즘과 낮은 구현 난이도 때문이 아닐까 합니다.
C 언어 기준으로 예제 코드 및 결과를 작성해보도록 하겠습니다.
반응형
버블 소트를 이용한 배열 정렬하기
위의 코드는 오름차순 기준으로 작성한 코드입니다.
#include <stdio.h>
// bubble sort prototypevoid bubble_sort(int *, int);int main(){int arr[] = {5, 2, 3, 1, 4};int arr_cnt = 5;
printf("Before sorting the array\n");for (int i = 0; i < arr_cnt; i++){printf("%d ", arr[i]);}printf("\n");
// Sortingbubble_sort(arr, arr_cnt);
printf("After sorting the array\n");for (int i = 0; i < arr_cnt; i++){printf("%d ", arr[i]);}}
// Bubble Sortvoid bubble_sort(int *array, int cnt){int tmp;for (int i = 0; i < cnt; i++){for (int j = 0; j < cnt - (i + 1); j++){
// compare and change positionsif (array[j] > array[j + 1]){tmp = array[j + 1];array[j + 1] = array[j];array[j] = tmp;}}}}
결과
Before sorting the array
5 2 3 1 4
After sorting the array
1 2 3 4 5
다른 타입의 배열을 정렬하고 싶다면, bubble_sort 의 파라미터 타입을 수정하면 됩니다. 마찬가지로 내림차순으로 정렬하고 싶다면 비교하는 부분을 array[j] < array[j + 1] 로 수정해주면 됩니다.
지금까지 버블 소트를 이용한 배열 정렬 예시였습니다.
읽어주셔서 감사합니다.
반응형
'▶ 프로그래밍 [Programming] > ▷ C 언어 [C Language]' 카테고리의 다른 글
[C 언어] 가변 인자를 이용한 디버그 함수 만들기 (va_list, va_start, va_end, vsprintf) (0) | 2021.11.26 |
---|---|
[C 언어] 가변 인자를 이용한 사용자 정의 함수 만들기 (va_list, va_arg, va_start, va_end) (0) | 2021.11.25 |
[C 언어] 함수 포인터를 이용한 콜백함수(callback function) 사용 예시 (example code) (0) | 2021.11.23 |
[C 언어] 퀵소트(qsort)를 이용한 배열, 구조체 정렬 사용 예시 (example code) (0) | 2021.11.21 |
[C 언어] 윈도우에서 gcc 컴파일러 설치, 환경 변수에 경로 추가하기 (Windows) (0) | 2021.11.20 |
댓글