如果任何人都可以在那裏幫忙,我會非常感激。搜索沒有內置方法的字符串數組
本質上,我正在做一個家庭作業項目,其中,部分,我需要搜索一個數組。數組,我目前有一個字符串類型,但本質上是一個日期的集合。 (在格式05/06/2014)
我只是在我的智慧結束嘗試找到一種方法來允許用戶搜索此數組,特別是不使用內置方法,如array.binarysearch等
我試圖執行二進制搜索,但似乎沒有工作,我可以提供代碼,如果你想看看我可能會出錯的地方。但是,有沒有更好的搜索,我應該使用這種字符串類型,或者我應該將字符串數組轉換爲不同的類型?
如果任何人都可以幫助,我將不勝感激,我不一定要求任何人爲我做我的工作我只是很高興,如果有人可以讓我朝着正確的方向碰撞,因爲這個問題一直在做我的堅果in。謝謝!
當前的二進制搜索代碼:
public static void BinarySearch(string[] dateArray, string searchTerm)
{
int first = 0;
int last = dateArray.Length - 1;
int position = -1;
bool found = false;
int compCount = 0;
while (found != true && first <= last)
{
int middle = (first + last)/2;
int comparisonSTR = string.Compare(dateArray[middle], searchTerm);
if (dateArray[middle] == searchTerm)
{
found = true;
position = middle;
compCount++;
Console.WriteLine("Your search has been found after " + compCount + "comparisons.");
}
else if (comparisonSTR > 0)
{
last = middle;
compCount++;
}
else
{
first = middle;
compCount++;
}
}
}
這絕對是一個好主意,發佈你的代碼,特別是你認爲不正確的代碼。如果我們不知道自己在做什麼/試圖做什麼,那麼很難提供指導。 –
該代碼將有助於告訴您二分搜索出了什麼問題。對這種數據使用DateTime也可能更好。這是一個更容易比較。 – druidicwyrm
如果您比較日期,請不要將它們作爲字符串進行比較,而應將其作爲「DateTime」實例進行比較。 「不能使用內置的方法」評論家庭作業。這很好,但要事先做好。 – Alex