Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class ArrayHelper
- {
- private static void Main()
- {
- var i = new []{1,1,1,2,2,3,4,5,5,5,6};
- System.Console.WriteLine(i.BinarySeacrh(1));
- System.Console.WriteLine(i.BinarySeacrh(2));
- System.Console.WriteLine(i.BinarySeacrh(3));
- System.Console.WriteLine(i.BinarySeacrh(4));
- System.Console.WriteLine(i.BinarySeacrh(5));
- System.Console.WriteLine(i.BinarySeacrh(6));
- System.Console.WriteLine(i.BinarySeacrh(-1));
- i = new []{1};
- System.Console.WriteLine(i.BinarySeacrh(1));
- System.Console.WriteLine(i.BinarySeacrh(2));
- System.Console.WriteLine(i.BinarySeacrh(-1));
- i = new []{1, 5};
- System.Console.WriteLine(i.BinarySeacrh(-1));
- System.Console.WriteLine(i.BinarySeacrh(1));
- System.Console.WriteLine(i.BinarySeacrh(2));
- System.Console.WriteLine(i.BinarySeacrh(5));
- System.Console.WriteLine(i.BinarySeacrh(10));
- i = new []{1,2,3,4};
- System.Console.WriteLine(i.BinarySeacrh(1));
- System.Console.WriteLine(i.BinarySeacrh(2));
- System.Console.WriteLine(i.BinarySeacrh(3));
- System.Console.WriteLine(i.BinarySeacrh(4));
- System.Console.WriteLine(i.BinarySeacrh(5));
- System.Console.WriteLine(i.BinarySeacrh(-1));
- i = new int[0];
- System.Console.WriteLine(i.BinarySeacrh(1));
- System.Console.WriteLine(i.BinarySeacrh(-1));
- }
- public static int BinarySeacrh(this int[] a, int key)
- {
- if (a == null)
- {
- throw new System.ArgumentNullException();
- }
- int left = 0;
- int rigth = a.Length - 1;
- int m;
- while (left <= rigth)
- {
- m = left + (rigth - left) / 2;
- if (key == a[m])
- {
- return m;
- }
- if (key > a[m])
- {
- left = m + 1;
- }
- else
- {
- if (key < a[m])
- {
- rigth = m - 1;
- }
- else
- {
- return -1;
- }
- }
- }
- return -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement