C#의 버블 정렬
다음 문서에서는 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
- 나가기
- (a) 배열[i+1]>배열[i]인 경우:
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); } }
출력:
위 프로그램에는 버블 정렬을 사용하여 숫자를 정렬하도록 정의된 메서드가 있습니다. 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; } } }
출력:
여기에서는 배열을 내림차순으로 정렬합니다. 우리는 10개의 숫자를 갖는 배열을 선언했습니다. 그런 다음 메인 프로그램에서 버블 정렬 기능을 호출한 다음 내림차순으로 인쇄합니다. 여기의 bubblesort 함수는 배열을 탐색하기 위해 두 개의 변수를 사용했습니다. 여기서는 두 개의 for 루프를 사용하여 배열을 순회하고 배열에 있는 값을 비교합니다. 인덱스 b와 인덱스 b – 1에 존재하는 데이터라는 조건을 비교합니다. b에 존재하는 숫자가 더 크면 교체됩니다. 이는 내부 for 루프에서 수행됩니다. 한번 교체되면 배열이 끝날 때까지 계속됩니다.
결론
버블 정렬은 가장 간단한 정렬 방법입니다. 이는 전체 배열을 순회하며 배열을 올바른 순서로 교체하고 가져오는 데 도움이 되는 숫자를 버블 팝합니다. 두 개의 인접한 숫자를 비교하여 예상 순서가 아닌 경우 해당 숫자를 표시합니다. C#을 사용한 정렬은 매우 쉽고 배열에 있는 기본 변수를 사용하여 수행할 수 있습니다.
위 내용은 C#의 버블 정렬의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

C#을 사용한 Active Directory 가이드. 여기에서는 소개와 구문 및 예제와 함께 C#에서 Active Directory가 작동하는 방식에 대해 설명합니다.

C#의 난수 생성기 가이드입니다. 여기서는 난수 생성기의 작동 방식, 의사 난수 및 보안 숫자의 개념에 대해 설명합니다.

C# 데이터 그리드 뷰 가이드. 여기서는 SQL 데이터베이스 또는 Excel 파일에서 데이터 그리드 보기를 로드하고 내보내는 방법에 대한 예를 설명합니다.

멀티 스레딩과 비동기식의 차이점은 멀티 스레딩이 동시에 여러 스레드를 실행하는 반면, 현재 스레드를 차단하지 않고 비동기식으로 작업을 수행한다는 것입니다. 멀티 스레딩은 컴퓨팅 집약적 인 작업에 사용되며 비동기식은 사용자 상호 작용에 사용됩니다. 멀티 스레딩의 장점은 컴퓨팅 성능을 향상시키는 것이지만 비동기의 장점은 UI 스레드를 차단하지 않는 것입니다. 멀티 스레딩 또는 비동기식을 선택하는 것은 작업의 특성에 따라 다릅니다. 계산 집약적 작업은 멀티 스레딩을 사용하고 외부 리소스와 상호 작용하고 UI 응답 성을 비동기식으로 유지 해야하는 작업을 사용합니다.

XML 형식을 수정하는 방법에는 여러 가지가 있습니다. Notepad와 같은 텍스트 편집기로 수동으로 편집; XMLBeautifier와 같은 온라인 또는 데스크탑 XML 서식 도구와 자동 포맷; XSLT와 같은 XML 변환 도구를 사용하여 변환 규칙을 정의합니다. 또는 Python과 같은 프로그래밍 언어를 사용하여 구문 분석하고 작동합니다. 원본 파일을 수정하고 백업 할 때주의하십시오.
