📜  C# – 使用预定义函数执行搜索

📅  最后修改于: 2022-05-13 01:55:17.085000             🧑  作者: Mango

C# – 使用预定义函数执行搜索

给定一个数组,现在我们的任务是使用 C# 中的预定义函数搜索数组中的元素。因此,最好的搜索技术是二进制搜索,它将使用预定义的函数搜索数组中的给定元素。二分搜索是一种有效的算法,仅适用于已排序的元素集。所以如果我们要使用二分查找,那么就必须对数组进行排序,否则会给出错误的结果。所以要对数组进行排序,我们使用 Sort()函数。二进制搜索将通过重复将搜索间隔分成两半来搜索已排序的数组。它将以覆盖整个阵列的间隔开始。如果搜索的元素小于区间中间的项,则将区间缩小到下半部分。否则将其缩小到上半部分。它将重复检查,直到找到元素或间隔为空。我们可以使用 BinarySearch()函数执行二进制搜索。

语法

Array.BinarySearch(array_name, (Object)element)

其中 array_name 是输入数组,element 是要使用 Object 数据类型搜索的元素。

例子:

Input:
Array size: 5
Elements: {3, 4, 5, 2, 1}
Element to Search: 4
Output:
Present in 3rd position

Input:
Array size: 1
Elements: {1}
Element to Search: 1
Output:
Present in 0 th position

方法:

示例

C#
// C# program to search elements in the
// array using predefined functions
using System;
 
class GFG{
     
public static void Main()
{
    Console.WriteLine("Enter the size of array ");
     
    // Read the array size
    string n = Console.ReadLine();
    int data = Int32.Parse(n);
 
    // Declare an array
    int[] array1 = new int[data];
    Console.WriteLine("Enter data :");
    for(int i = 0; i < data; i++)
    {
        string s = Console.ReadLine();
        array1[i] = Int32.Parse(s);
    }
 
    // Sort an array by using Sort() function
    Array.Sort(array1);
 
    // Read a number to search an array
    Console.WriteLine("Search a number : ");
    string search = Console.ReadLine();
    int data2 = Int32.Parse(search);
     
    // Apply BinarySearch() function to
    // search the specified element
    int data3 = Array.BinarySearch(array1,
                                   (Object)data2);
                                    
    // Display the position of the slement
    Console.WriteLine("Element {1} is present in  {0} position",
                      data3, array1[data3]);
}
}


输出:

Enter the size of array 
5
Enter data :
1
4
2
7
8
Search a number : 
2
Element 2 is present in  1 position