상세 컨텐츠

본문 제목

[C] 버블 소트

C++ 문법

by simstealer 2023. 1. 25. 12:20

본문

#include <stdio.h>

int main()
{
    int DataSet[] = { 4, 1, 5, 2, 3 };
    int length = sizeof(DataSet) / sizeof(int);   // 전체 요소의 갯수

    int count;
    int complite;
    // 버블 소트를 구현해보세요.
    // 맨 뒤에서 부터 정렬되기 때문에 
    // 전체 - 1 만 해도 된다.
    // 마지막에 남은 작은 수는 자동으로 정렬되기 때문이다.
    for (int i = 0; i < length - 1; i++) // i = 2, length = 5
    {
        count = 0;
        complite = length - 1 - i;
        // 버블소트는 안쪽 for문이 돌면 맨 뒤쪽부터 정렬이 된다.
        // 그렇기때문에 반복 횟수를 하나씩 줄여가면된다.
        for (int j = 0; j < length - 1 - i; j++)
        {
                // 1, 2, 3, 4, 5
            if (DataSet[j] > DataSet[j + 1])
            {
                // 앞에 있는 값이 크면 temp에 값을 넣는다.
                int temp = DataSet[j];
                DataSet[j] = DataSet[j + 1];
                DataSet[j + 1] = temp;
            }
            else
            {
                count++; // 2
                if (count == complite)
                    break;
            }
        }
    }

    // 정렬된 내용을 출력   
    for (int i = 0; i < length; i++) {

        printf("%d ", DataSet[i]);
    }
    return 0;

}

'C++ 문법' 카테고리의 다른 글

[C] 퀵 정렬  (0) 2023.01.26
[C] 삽입 정렬  (0) 2023.01.25
[C++] inline 함수  (0) 2023.01.04
[C++] vector 배열 내, 문자열 값들을 sort()하기  (0) 2022.07.04
[C++] 콘솔창에 원 그리기  (0) 2022.07.02

관련글 더보기

댓글 영역