[白俊2750]昇順Bubbleでソート
昇順ソートでは、最も基本的なBubbleソートについて説明します.
#include <stdio.h>
void BubbleSort(int arr[], int n)
// 정렬할 배열의 주솟값과 길이 전달
{
int i, j;
int temp;
for (i = 0; i < n - 1; i++) // 바깥 반복문을 한번 돌때마다 n째 인덱스는 최댓값으로 확정
{
for (j = 0; j < (n - i) - 1; j++)
/*
j는 인덱스를 뜻하며 비교연산을 진행해주는 반복문
-1? 배열의 인덱스가 네개이면 비교연산 횟수는 0-1, 1-2, 2-3 3번
(n-i)? 바깥 for문이 한번 돌때마다 n번째 인덱스는 확정되므로 연산횟수를 i번 줄임
*/
if (arr[j] > arr[j + 1])
// 이전 인덱스가 더 크다면
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
//스왑
}
}
}
int main(void)
{
int arr[7] = { 3, 2, 5, 1, 6, 7, 8 };
int i;
BubbleSort(arr, sizeof(arr) / sizeof(int));
// 배열 주소값, 배열의 길이(=총배열메모리/데이터자료형)
for (i = 0; i < sizeof(arr) / sizeof(int); i++) printf("%d ", arr[i]);
// for문을 이용한 배열 순차 출력
printf("\n");
return 0;
}
この原理を利用してc#を書き直し、using System;
namespace ConsoleApp2
{
class Program
{
static void BubbleSort(ref int[] arr, int n)
{
{
int i, j;
int temp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < (n - i) -1 ; j++)
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
static void Main(string[] args)
{
int N = int.Parse(Console.ReadLine());
int[] arr = new int[N];
for (int i = 0; i < N; i++)
{
arr[i] = int.Parse(Console.ReadLine());
}
BubbleSort(ref arr, N);
for (int i = 0; i < N; i++)
{
Console.WriteLine(arr[i]);
}
}
}
}
しかし、これより簡単な方法はC#でArrayです.sortメソッドを使用すると、1次元配列を簡単にソートできます.using System;
namespace ascending
{
class Program
{
static void Main(string[] args)
{
// for문을 돌리기 위해 n값을 지정한다.
int n = Int32.Parse(Console.ReadLine());
// int를 담을 배열을 만들어 준다.
int[] arr = new int[n];
// 배열을 따로 생성합니다.
for (int i = 0; i < n; i++)
{
arr[i] = Int32.Parse(Console.ReadLine());
}
Array.Sort(arr);
foreach (int i in arr)
{
Console.WriteLine(i);
}
Console.ReadLine();
}
}
}
Reference
この問題について([白俊2750]昇順Bubbleでソート), 我々は、より多くの情報をここで見つけました https://velog.io/@marintelli/백준2750-오름차순-버블정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol