img

버블 정렬은 배열의 두 수를 선택한 뒤, 그 두 수가 정렬되었다면 놔두고, 아니라면 두 수를 바꾸는 방식으로 진행된다.

버블 정렬은 아래와 같은 순서로 이루어진다.

  1. 맨 앞과 그 다음 데이터를 비교 한다.
  2. 앞 데이터가 크면 swap 한다.
  3. 정렬이 완료되었을 시, sorted 값을 true로 변경하면서 추가 비교를 건너뛴다.
void BubbleSort(int* list, int size)
{
    for (int i = size; i > 0; i--)
    {
        bool sorted = false;
        for (int j = 0; j < i - 1; j++)
        {
            if (list[j] > list[j + 1])
            {
                std::swap(list[j], list[j + 1]);
                sorted = true;
            }
        }
        if (!sorted)
            break;
    }
}

참조) Bubble sort - Wikipedia

댓글남기기