C# ArrayList二进制搜索BinarySearch

ArrayList的BinarySearch方法在使用指定的比较器中搜索一个元素中排序的ArrayList中的一系列元素,并返回元素的索引。

例如,如果我们想从ArrayList搜索任何对象,那么首先应该对ArrayList进行排序,然后我们执行搜索。

C# ArrayList二进制搜索示例

public class SimpleStringComparer : IComparer

{
  int IComparer.Compare(object x, object y)
  {
     int cmpstr = (int)x;

      return cmpstr.CompareTo((int)y);
  }
}
public class MyArrayList : ArrayList

{
  public static void Main()
  {
      //Creates a new ArrayList.

      MyArrayList numbers = new MyArrayList();
      numbers.Add(10);
      numbers.Add(21);
      numbers.Add(54);

      numbers.Add(3);
      numbers.Add(2);
      numbers.Add(10);
      numbers.Add(5);

      //display the array
      Console.WriteLine("The number of elements in the arraylist are:");
      foreach (int i in numbers)
      {

          Console.WriteLine(i);
      }
      //BinarySearch requires a sorted ArrayList.so perform sorting in arraylist by using sort() method
      numbers.Sort();

      //display the sorted element
      Console.WriteLine("After sorting the arraylist are:");
      foreach (int i in numbers)
      {

          Console.WriteLine(i);
      }  
      //perform searching
      int index = numbers.BinarySearch(1,6,21, new SimpleStringComparer());

      Console.WriteLine("Binary search, item found at index:{0}", index);
  }   
}
日期:2020-04-11 22:50:14 来源:oir作者:oir