Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Array.BinarySearch 메서드로 배열 요소 위치 찾기

C#에서 Array.BinarySearch 메서드를 사용하면 배열 안에서 특정 요소가 위치한 인덱스를 빠르게 찾을 수 있습니다. 이진 탐색(Binary Search) 알고리즘을 기반으로 하기 때문에 대용량 배열에서도 효율적으로 동작합니다.

문자열 배열 선언하기

먼저 다음과 같이 문자열 배열을 선언합니다.

string[] str = { "a", "m", "i", "t"};

Array.BinarySearch로 요소 위치 구하기

이제 Array.BinarySearch 메서드에 배열과 찾으려는 값을 전달하여 문자 't'의 위치를 구할 수 있습니다.

Array.BinarySearch(str, "t");

전체 예제 코드

using System;
using System.Text;

public class Demo {
   public static void Main() {
      string[] str = { "a", "m", "i", "t"};

      // BinarySearch 메서드를 사용해 문자 't'의 위치(인덱스)를 구함
      int res = Array.BinarySearch(str, "t");

      // 결과 출력
      Console.WriteLine("Index : " + res);
   }
}

실행 결과

Index : 3

위 예제에서 문자 't'는 배열의 네 번째 요소이므로 인덱스 3이 반환됩니다. C# 배열의 인덱스는 0부터 시작하기 때문입니다.

참고 사항

Array.BinarySearch는 배열이 오름차순으로 정렬되어 있다는 가정하에 동작합니다. 따라서 실무에서는 Array.Sort()로 배열을 먼저 정렬한 뒤 사용하는 것이 좋습니다. 정렬되지 않은 배열에 사용하면 엉뚱한 인덱스나 음수 값이 반환될 수 있으며, 찾는 값이 없을 경우에도 음수가 반환됩니다.