버블정렬(bubble sort)
옆에 있는 값과 비교해서 더 작은 값을 앞으로 보내면 어떨까? 해서 나온 답이 >> 버블 정렬은 서로 이웃한 데이터들을 비교하며 가장 큰 데이터를 가장 뒤로 보내는 정렬방식이다.
버블정렬 과정
- 첫 번째 데이터와 두 번째 데이터를 비교하여 첫 번째 값이 더 크면 두 번째 데이터와 교환한다.
- 두 번째 데이터와 세 번째 데이터를 비교하여 더 큰 수를 뒤로 보낸다.
- 이렇게 끝까지 진행하면, 제일 큰 숫자가 맨 뒤로 가게 된다. 이렇게 계속 처음부터 n-1번째 데이터를 비교해서 정렬하는 알고리즘이다.
버블정렬(bubble sort) 이론
지금 아래사진 선택 정렬 해보겠습니다.
그림처럼 총 5번 반복하면 1,2,3,4,5로 정렬이 됩니다.
바로 위에서 설명한 것처럼 옆에 있는 값과 비교해서 더 작은 값을 앞으로 보내면 어떨까? 를 생각하시고 그림을 확인하시면 더 이해가 잘 될 겁니다.
버블정렬(bubble sort) 코드
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<int> list = new List<int> { 5, 4, 1, 2, 3 };
Console.WriteLine("정렬 하기 전 리스트 안:");
PrintList(list);
BubbleSort(list);
Console.WriteLine("정렬 하기 후 리스트 안:");
PrintList(list);
}
static void BubbleSort(List<int> list)
{
int n = list.Count;
for (int i = 0; i < n - 1; i++)
{
// 마지막 i개의 요소는 이미 정렬되어 있으므로 반복할 필요가 없음
for (int j = 0; j < n - i - 1; j++)
{
// 인접한 두 요소를 비교하여 순서가 잘못된 경우 교환
if (list[j] > list[j + 1])
{
int temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
}
static void PrintList(List<int> list)
{
foreach (int item in list)
{
Console.Write(item + " ");
}
Console.WriteLine();
}
}

728x90
'컴퓨터공학 > 알고리즘' 카테고리의 다른 글
알고리즘 - 퀵정렬(quick sort) c# (0) | 2025.05.04 |
---|---|
알고리즘 - 삽입정렬(insertion sort) c# (0) | 2024.09.10 |
알고리즘 - 선택정렬(selection sort) c# (0) | 2024.06.06 |
알고리즘 - 재귀호출(recursive call) c# (0) | 2024.06.04 |