>  기사  >  백엔드 개발  >  C#의 버블 정렬

C#의 버블 정렬

王林
王林원래의
2024-09-03 15:24:24798검색

다음 문서에서는 C#의 버블 정렬에 대한 개요를 제공합니다. 버블 정렬은 가장 간단한 알고리즘으로 간주되는 정렬 알고리즘으로, 요소 또는 숫자를 특정 순서로 배치하고 이러한 요소는 결국 배열의 정렬된 적절한 위치에 배치됩니다.

버블 정렬 알고리즘

버블 정렬의 기본 개념은 배열을 고려한다는 것입니다. 이 배열은 첫 번째 인덱스부터 마지막 ​​인덱스까지 반복됩니다. 순회하는 동안 배열은 인접한 요소와 비교되어 잘못된 순서로 존재하는 경우 교체됩니다. 즉, 숫자가 특정 인덱스의 현재 요소보다 작으면 숫자가 교체됩니다. 이 과정은 배열이 완전히 정렬될 때까지 반복됩니다. 패스 형태로 진행됩니다.

7개의 난수 배열을 고려하여 정렬해 보겠습니다.

버블 정렬은 패스 형태로 작동합니다. 이 패스는 한 번에 두 개의 인접한 숫자를 가져온 다음 해당 두 숫자를 비교합니다. 존재하는 숫자가 N이라고 하면 데이터 세트를 정렬하는 데 필요한 패스 수는 N – 1입니다. 각 패스에서는 해당 두 숫자를 고려하여 데이터를 정렬하고 모든 숫자가 예상대로 정렬되지 않을 때까지 시퀀스를 반복합니다.

패스 1:

90   76   45   93   68   13   98

첫 번째 단계에서는 처음 두 숫자를 비교합니다. 여기서는 90과 76을 비교합니다. 90은 76보다 크므로 교체됩니다.

76   90   45   93   68   13   98

이제 90은 45와 비교됩니다. (0도 45보다 큽니다. 따라서 45로 바뀌게 됩니다.

76   45   90   93   68   13   98

이제 90번과 93번은 이미 순서가 되어있습니다. 교체되지 않고 그대로 유지됩니다. 따라서 이 패스는 알고리즘에 따라 중지됩니다.

패스 2:

76   45   90   93   68   13   98

이 패스는 배열의 첫 번째 숫자부터 다시 시작됩니다. 이는 이제 정렬이 76부터 시작된다는 의미입니다. 76은 45와 비교됩니다. 76보다 작은 45는 76으로 교체됩니다.

45   76   90   93   68   13   98

이제 76과 90이 확인됩니다. 이미 올바른 순서로 되어 있으므로 배열에는 변경 사항이 없습니다.

이런 방식으로 배열이 끝날 때까지 순회가 발생합니다.

버블 정렬 알고리즘

  • BubbleSort(Array : 정렬 가능한 항목의 목록)
  • N= 배열.길이
  • 플래그 설정 := True
  • I = 1에서 N-1이고 Flag == true인 경우 3~5단계를 반복합니다
  • 플래그 설정 := False
  • i:=0으로 설정
  • i
  • (a) 배열[i+1]>배열[i]인 경우:
    배열[i]와 배열[i+1] 교환 플래그 설정:= True
  • (b) i 설정:=i+1
  • 나가기

C#의 버블 정렬 예

다음은 예시입니다.

예시 #1

버블 정렬을 구현하는 C# 프로그램

코드:

using System;
class Bubble
{
static void bubbleSrt(int []arr)
{
int num = arr.Length;
for (int i = 0; i < num - 1; i++)
for (int j = 0; j < num - i - 1; j++)
if (arr[j] > arr[j + 1])
{
// swap tmp and arr[i]
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
/* Printing the array */
static void printIt(int []arr)
{
int n = arr.Length;
for (int i = 0; i < n; ++i)
Console.Write(arr[i] + " ");
Console.WriteLine();
}
// Main method
public static void Main()
{
int []arr = {90, 76, 45, 93, 68, 13, 98};
bubbleSrt(arr);
Console.WriteLine("Sorted array");
printIt(arr);
}
}

출력:

C#의 버블 정렬

위 프로그램에는 버블 정렬을 사용하여 숫자를 정렬하도록 정의된 메서드가 있습니다. Bubblesort에는 배열을 순회하고 임시 변수 tmp에 교체될 숫자를 저장하는 두 개의 for 루프가 있습니다. 그런 다음 이 tmp 값은 인덱스 j의 도움을 받아 있어야 하는 위치로 교체됩니다. 정렬된 배열을 인쇄하는 데 또 다른 방법이 사용됩니다. 버블 정렬은 n – 1개의 패스를 사용하여 배열을 정렬합니다.

버블정렬은 내림차순으로도 구현 가능합니다.

예시 #2

버블 정렬을 내림차순으로 구현하는 C# 프로그램은 다음과 같습니다.

코드:

using System;
public class BubbleSrt
{
public static void Main(string[] args)
{
int[]arr=new int[10]{23,98,45,12,9,16,65,74,34,29};//Array created with 10 unsorted numbers
bubblesort(arr,10);
int a;
for(a = 0; a < 10; a++)
Console.Write(arr[a]+"\t");//Printing the array after sorting in descending order
Console.ReadLine();
}
//bubble sort
static void bubblesort(int[] data, int n)
{
int a;
int b;
for(a = 0; a < n; a++)
for (b = n-1; b > a; b--)
if (data[b] > data[b-1])//Condition to arrange array in descending order
{
int temp = data[b];
data[b]=data[b-1];
data[b-1]=temp;
}
}
}

출력:

C#의 버블 정렬

여기에서는 배열을 내림차순으로 정렬합니다. 우리는 10개의 숫자를 갖는 배열을 선언했습니다. 그런 다음 메인 프로그램에서 버블 정렬 기능을 호출한 다음 내림차순으로 인쇄합니다. 여기의 bubblesort 함수는 배열을 탐색하기 위해 두 개의 변수를 사용했습니다. 여기서는 두 개의 for 루프를 사용하여 배열을 순회하고 배열에 있는 값을 비교합니다. 인덱스 b와 인덱스 b – 1에 존재하는 데이터라는 조건을 비교합니다. b에 존재하는 숫자가 더 크면 교체됩니다. 이는 내부 for 루프에서 수행됩니다. 한번 교체되면 배열이 끝날 때까지 계속됩니다.

결론

버블 정렬은 가장 간단한 정렬 방법입니다. 이는 전체 배열을 순회하며 배열을 올바른 순서로 교체하고 가져오는 데 도움이 되는 숫자를 버블 팝합니다. 두 개의 인접한 숫자를 비교하여 예상 순서가 아닌 경우 해당 숫자를 표시합니다. C#을 사용한 정렬은 매우 쉽고 배열에 있는 기본 변수를 사용하여 수행할 수 있습니다.

위 내용은 C#의 버블 정렬의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C#에서 정렬다음 기사:C#에서 정렬