1. 사용 Array.Reverse() 방법
에게 제자리에서 지정된 어레이 내에서 요소의 순서를 반대로 하면 다음을 사용할 수 있습니다. Array.Reverse() 방법. 솔루션은 보조 어레이을 사용하지 않고 지정된 어레이의 기존 요소를 덮어쓰는 방식으로 작동합니다.
다음 예에서는 어레이의 값을 반대로 하는 방법을 보여줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
using System;
public class Example
{
public static void Main()
{
int[] array = { 2, 4, 6, 8 };
Array.Reverse(array);
Console.WriteLine(String.Join(',', array));
}
}
/*
결과: 8,6,4,2
*/
|
2. 사용 Enumerable.Reverse() 방법
원래 어레이의 역 복사본을 생성하려면 다음을 사용할 수 있습니다. Enumerable.Reverse() 방법. 기본 어레이을 수정하지 않고 역순으로 요소가 있는 새 시퀀스를 생성합니다. 다음 코드 예제에서는 다음을 사용하여 어레이을 반전합니다. Reverse() 방법.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
using System;
using System.Linq;
public class Example
{
public static void Main()
{
int[] array = { 2, 4, 6, 8 };
int[] reverse = Enumerable.Reverse(array).ToArray();
Console.WriteLine(String.Join(',', reverse));
}
}
/*
결과: 8,6,4,2
*/
|
3. 커스텀 루틴
또 다른 솔루션은 입력 어레이과 동일한 유형 및 크기의 새 어레이을 만들고 소스 어레이의 요소를 역순으로 채운 다음 새 어레이의 내용을 소스 어레이에 복사하는 것입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
using System;
public static class Extensions
{
public static void reverse<T>(this T[] array)
{
int n = array.Length;
T[] aux = new T[n];
for (int i = 0; i < n; i++) {
aux[n - 1 - i] = array[i];
}
for (int i = 0; i < n; i++) {
array[i] = aux[i];
}
}
}
public class Example
{
public static void Main()
{
int[] array = { 2, 4, 6, 8 };
array.reverse();
Console.WriteLine(String.Join(',', array));
}
}
/*
결과: 8,6,4,2
*/
|
위의 구현에는 다음이 필요합니다. O(n) 보조 어레이를 위한 추가 공간. 아래와 같이 어레이을 제자리에서 수정하여 이를 방지할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
using System;
public class Example
{
private static void swap(int[] array, int i, int j)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
public static void Main()
{
int[] array = { 2, 4, 6, 8 };
int n = array.Length;
for (int i = 0; i < n/2; i++) {
swap(array, i, n-i-1);
}
Console.WriteLine(String.Join(',', array));
}
}
/*
결과: 8,6,4,2
*/
|
'c# 기초 문법' 카테고리의 다른 글
c# 메서드(1) (0) | 2024.08.07 |
---|---|
c# 배열의 선언과 초기화방법 (0) | 2024.08.07 |
c# 배열 - array, list (0) | 2024.08.07 |
c# 반복문 (0) | 2024.08.06 |
c# 조건문 (0) | 2024.08.06 |