728x90
- 버블정렬(Bubble sort)이란?
버블 정렬은 서로 이웃한 데이터들을 비교하며 가장 큰 데이터를 가장 뒤로 보내는 정렬방식이다.
1. 첫번째 데이터와 두번째 데이터를 비교하여 첫번째 값이 더 크면 두번째 데이터와 교환한다.
2. 두번째 데이터와 세번째 데이터를 비교하여 더 큰 수를 뒤로 보낸다.
3. 이렇게 끝까지 진행하면, 제일 큰 숫자가 맨 뒤로 가게 된다. 이렇게 계속 처음부터 n-1번째 데이터를 비교해서 정렬하
는 알고리즘이다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BubbleSort
{
class Program
{
static void Main(string[] args)
{
int[] nArrData = { 20, 15, 1, 5, 10 };
Console.WriteLine("버블정렬");
Console.Write("시작값 : ");
for(int i = 0; i < nArrData.Length; i++)
{
Console.Write(nArrData[i].ToString() + ",");
}
Console.WriteLine();
//구현
for(int i = 0; i < nArrData.Length - 1 ; i++)
{
for(int j = 0; j < nArrData.Length - 1 - i; j++)
{
if(nArrData[j] > nArrData[j + 1])
{
Swap(ref nArrData[j], ref nArrData[j + 1]);
}
//첫번째 정렬값(0, 1) : 20, 5, 10, 15 ...
Console.Write((i + 1) + "번째 정렬값(" + j + ", " + (j + 1) + ") : ");
for(int k = 0; k < nArrData.Length; k++)
{
Console.Write(nArrData[k].ToString() + ", ");
}
Console.WriteLine();
}
}
}
static void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
}
}
- 버블정렬의 특징
- 구현은 단순하지만 비교적 성능이 좋지 않음
- 배열의 모든 요소와 교환해야 한다.
- 이미 정렬이 된 데이터도 교환되는 일이 발생한다.
728x90
'게임 프로그래밍 > C#' 카테고리의 다른 글
C# 정렬 알고리즘 - 삽입정렬(Insertion sort) (0) | 2021.12.27 |
---|---|
C# 정렬 알고리즘 - 퀵정렬(Quick sort) (0) | 2021.12.27 |
C# 정렬 알고리즘 - 선택정렬(Selection sort) (0) | 2021.12.27 |
C# 알고리즘 - 재귀호출(Recursive Call) (0) | 2021.12.27 |
C# 선형 자료구조 - 해쉬테이블 & 딕셔너리(HashTable & Dictionary<T>) (0) | 2021.12.27 |