我的任務是創建兩個分開的程序,一個線性搜索程序,我已經完成了,還有一個二分查找程序。這些程序還必須計算在搜索過程中進行的比較次數。我的線性搜索程序已經計算了我的二進制搜索程序無法進行的比較次數。對於二進制搜索的代碼看起來是這樣的:爲BinarySearch計算的比較次數
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
Console.WriteLine("Input number you would like to search for");
String Look_for = Console.ReadLine();
int Lookfor;
int.TryParse(Look_for, out Lookfor);
{
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
numbers.Add(4);
numbers.Add(5);
numbers.Add(6);
numbers.Add(7);
numbers.Add(8);
Console.WriteLine();
foreach (int number in numbers)
{
Console.WriteLine(number);
}
int answer = numbers.BinarySearch(Lookfor);
Console.WriteLine("The numbers was found at:");
Console.WriteLine(answer);
}
}
}
如果有人能告訴我如何修改它來計算比較,將不勝感激。
非常感謝,馬修。
你有機會獲得二分查找擴展方法? – dwonisch
你確定你應該使用內建的[BinarySearch](http://msdn.microsoft.com/en-us/library/w4e7fxsh(v = vs.100).aspx)來完成這項任務嗎?您可以編寫一個自定義比較器來計算調用次數,但通常這種練習的要點是自己實現這些功能...... – verdesmarald
任務是比較使用不同大小列表的兩次搜索的效率,如果我做了自己的二進制搜索,而不是使用內置的一個? –