static void Main(string[] args) { Console.WriteLine("Hello Word"); int n = 10000; Random rnd = new Random(); int search = rnd.Next(0, n); List <int> List = new List <int>(); OneList List1 = new OneList(); for (int i = 1; i <= n; i++) { List.Add(i); List1.Add(i); //Console.Write(List1 + " "); } foreach (int item in List1) { Console.Write(item + " "); } Console.WriteLine("\n"); Console.WriteLine("List statistic:\n"); Console.WriteLine("Search key: " + search); Console.WriteLine("\nBasic Search:\n"); Stopwatch bsw = Stopwatch.StartNew(); int bfound = List1.Element(search); bsw.Stop(); Console.WriteLine("Found key: " + List1.Element(search)); Console.WriteLine("Elapsed time : " + bsw.Elapsed); Console.WriteLine("\nBinary Search:\n"); Stopwatch sw = Stopwatch.StartNew(); int found = BinSearch(List1, search); sw.Stop(); Console.WriteLine("Found key: " + BinSearch(List1, search)); Console.WriteLine("Elapsed time : " + sw.Elapsed); //Console.WriteLine(List1.Element(26)); Console.WriteLine("\nPress any key to Exit"); Console.ReadKey(); }
static int BinSearch(OneList List, int key) { int left = 0; int mid = 0; int right = List.Count(); while (!(left >= right)) { mid = left + (right - left) / 2; if (List.Element(mid) == key) { return(mid); } if (List.Element(mid) > key) { right = mid; } else { left = mid; } } return(-(1 + left)); }