Maison >développement back-end >Tutoriel C#.Net >Comment écrire un algorithme de recherche binaire en utilisant C#

Comment écrire un algorithme de recherche binaire en utilisant C#

WBOY
WBOYoriginal
2023-09-19 12:42:371285parcourir

Comment écrire un algorithme de recherche binaire en utilisant C#

Comment écrire un algorithme de recherche binaire en utilisant C#

L'algorithme de recherche binaire est un algorithme de recherche efficace qui trouve la position d'un élément spécifique dans un tableau ordonné, avec une complexité temporelle de O(logN). En C#, nous pouvons écrire l'algorithme de recherche binaire en suivant les étapes suivantes.

Étape 1 : Préparer les données

Tout d'abord, nous devons préparer un tableau trié comme données cibles pour la recherche. Supposons que nous voulions trouver la position d'un élément spécifique dans un tableau.

int[] data = {1, 3, 5, 7, 9, 11, 13, 15};

Étape 2 : Écrivez une fonction de recherche binaire

Ensuite, nous pouvons écrire une fonction pour implémenter l'algorithme de recherche binaire. Les paramètres de la fonction incluent la valeur de l'élément à trouver et le tableau à trouver. La valeur de retour de la fonction est la valeur d'index de l'élément trouvé dans le tableau, ou -1 s'il n'est pas trouvé.

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;
}

Étape 3 : Appelez la fonction de recherche binaire

Maintenant, nous pouvons appeler la fonction de recherche binaire écrite ci-dessus dans le programme principal pour trouver des éléments spécifiques. Nous pouvons d'abord définir une valeur d'élément à rechercher, puis appeler la fonction de recherche binaire et imprimer le résultat.

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

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

L'exemple de code complet est le suivant :

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;
    }
}

Grâce à l'exemple de code ci-dessus, nous pouvons apprendre à écrire un algorithme de recherche binaire en utilisant C#. Dans le développement réel, nous pouvons ajuster et optimiser l'algorithme en fonction de besoins spécifiques pour obtenir une fonction de recherche plus efficace.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn