c# 二分查找算法
折半搜索,也稱(chēng)二分查找算法、二分搜索,是一種在有序數(shù)組中查找某一特定元素的搜索算法。
A 搜素過(guò)程從數(shù)組的中間元素開(kāi)始,如果中間元素正好是要查找的元素,則搜素過(guò)程結(jié)束;
B 如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半中查找,而且跟開(kāi)始一樣從中間元素開(kāi)始比較。
C 如果在某一步驟數(shù)組為空,則代表找不到。這種搜索算法每一次比較都使搜索范圍縮小一半。
時(shí)間復(fù)雜度折半搜索每次把搜索區(qū)域減少一半,時(shí)間復(fù)雜度為。
(n代表集合中元素的個(gè)數(shù))空間復(fù)雜度
/// <summary>
/// 二分查找
/// </summary>
/// <param name="arr"></param>
/// <param name="low">開(kāi)始索引 0</param>
/// <param name="high">結(jié)束索引 </param>
/// <param name="key">要查找的對(duì)象</param>
/// <returns></returns>
public static int BinarySearch(int[] arr, int low, int high, int key)
{
int mid = (low + high) / 2;
if (low > high)
return -1;
else
{
if (arr[mid] == key)
return mid;
else if (arr[mid] > key)
return BinarySearch(arr, low, mid - 1, key);
else
return BinarySearch(arr, mid + 1, high, key);
}
}
實(shí)例:
int[] y = new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13 };
int rr = BinarySearch(y, 0, y.Length - 1, 13);
Console.Write(rr); //12
相關(guān)文章
C#使用隊(duì)列(Queue)解決簡(jiǎn)單的并發(fā)問(wèn)題
這篇文章主要介紹了使用隊(duì)列(Queue)解決簡(jiǎn)單的并發(fā)問(wèn)題,講解的很細(xì)致,喜歡的朋友們可以了解一下2015-07-07C#動(dòng)態(tài)創(chuàng)建button按鈕的方法實(shí)例詳解
這篇文章主要介紹了C#動(dòng)態(tài)創(chuàng)建button按鈕的方法實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06C#讀寫(xiě)EXCEL單元格的問(wèn)題實(shí)現(xiàn)
這篇文章主要介紹了C#讀寫(xiě)EXCEL單元格的問(wèn)題實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04C# Oracle數(shù)據(jù)庫(kù)操作類(lèi)實(shí)例詳解
這篇文章主要介紹了C# Oracle數(shù)據(jù)庫(kù)操作類(lèi)實(shí)例,進(jìn)行數(shù)據(jù)庫(kù)操作時(shí)很有實(shí)用價(jià)值,需要的朋友可以參考下2014-07-07WPF實(shí)現(xiàn)動(dòng)畫(huà)效果
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫(huà)效果的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01C# 獲取當(dāng)前年份的周期及周期所在日期范圍(推薦)
這篇文章主要介紹了C# 獲取當(dāng)前年份的周期,周期所在日期范圍 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05C#/VB.NET實(shí)現(xiàn)創(chuàng)建PDF/UA文件的示例代碼
PDF/UA,即Universally?Accessible?PDF,該格式的PDF文件是于2012年8月以ISO標(biāo)準(zhǔn)14289-1發(fā)布的、具有普遍可訪問(wèn)的PDF文檔標(biāo)準(zhǔn)。本文將用C#實(shí)現(xiàn)DF/UA文件的創(chuàng)建,需要的可以參考一下2022-08-08Unity中的RegisterPlugins實(shí)用案例深入解析
這篇文章主要為大家介紹了Unity中的RegisterPlugins實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05VS2015為console.readkey添加代碼片段的方法
這篇文章主要介紹了VS2015為console.readkey添加代碼片段的方法,需要的朋友可以參考下2016-12-12