> 백엔드 개발 > C#.Net 튜토리얼 > C#을 사용하여 이진 검색 알고리즘을 작성하는 방법

C#을 사용하여 이진 검색 알고리즘을 작성하는 방법

WBOY
풀어 주다: 2023-09-19 12:42:37
원래의
1296명이 탐색했습니다.

C#을 사용하여 이진 검색 알고리즘을 작성하는 방법

C#을 사용하여 이진 검색 알고리즘을 작성하는 방법

이진 검색 알고리즘은 O(logN)의 시간 복잡도로 정렬된 배열에서 특정 요소의 위치를 ​​찾는 효율적인 검색 알고리즘입니다. C#에서는 다음 단계를 통해 이진 검색 알고리즘을 작성할 수 있습니다.

1단계: 데이터 준비

먼저 검색할 대상 데이터로 정렬된 배열을 준비해야 합니다. 배열에서 특정 요소의 위치를 ​​찾고 싶다고 가정해 보겠습니다.

int[] data = {1, 3, 5, 7, 9, 11, 13, 15};
로그인 후 복사

2단계: 이진 검색 함수 작성

다음으로 이진 검색 알고리즘을 구현하는 함수를 작성할 수 있습니다. 함수의 매개변수에는 찾을 요소의 값과 찾을 배열이 포함됩니다. 함수의 반환 값은 배열에서 발견된 요소의 인덱스 값이거나, 발견되지 않은 경우 -1입니다.

int BinarySearch(int target, int[] data)
{
    int left = 0;
    int right = data.Length - 1;

    while (left <= right)
    {
        int mid = left + (right - left) / 2;

        if (data[mid] == target)
        {
            return mid;
        }
        else if (data[mid] < target)
        {
            left = mid + 1;
        }
        else
        {
            right = mid - 1;
        }
    }
    
    return -1;
}
로그인 후 복사

3단계: 이진 검색 기능 호출

이제 메인 프로그램에서 위에서 작성한 이진 검색 기능을 호출하여 특정 요소를 찾을 수 있습니다. 먼저 검색할 요소 값을 정의한 다음 이진 검색 기능을 호출하고 결과를 인쇄할 수 있습니다.

int target = 13;
int result = BinarySearch(target, data);

if (result == -1)
{
    Console.WriteLine("在数组中未找到该元素!");
}
else
{
    Console.WriteLine("该元素在数组中的索引为:" + result);
}
로그인 후 복사

전체 코드 예제는 다음과 같습니다.

using System;

public class BinarySearchExample
{
    static void Main(string[] args)
    {
        int[] data = {1, 3, 5, 7, 9, 11, 13, 15};
        int target = 13;

        int result = BinarySearch(target, data);

        if (result == -1)
        {
            Console.WriteLine("在数组中未找到该元素!");
        }
        else
        {
            Console.WriteLine("该元素在数组中的索引为:" + result);
        }
    }

    static int BinarySearch(int target, int[] data)
    {
        int left = 0;
        int right = data.Length - 1;

        while (left <= right)
        {
            int mid = left + (right - left) / 2;

            if (data[mid] == target)
            {
                return mid;
            }
            else if (data[mid] < target)
            {
                left = mid + 1;
            }
            else
            {
                right = mid - 1;
            }
        }

        return -1;
    }
}
로그인 후 복사

위의 코드 예제를 통해 C#을 사용하여 이진 검색 알고리즘을 작성하는 방법을 배울 수 있습니다. 실제 개발에서는 보다 효율적인 검색 기능을 달성하기 위해 특정 요구에 따라 알고리즘을 조정하고 최적화할 수 있습니다.

위 내용은 C#을 사용하여 이진 검색 알고리즘을 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿