算法之二分查找

排序算法

二分查找

用于有序元素列表的查找
性能:

時(shí)間復(fù)雜度 空間復(fù)雜度
O (log n )
  • Python實(shí)現(xiàn):
def binary_search(list, item):
   '''二分查找 
    list:數(shù)組列表
    item:要查詢的值    
    '''
    num=0
    low_index = 0 
    high_index = len(list)-1
    while low_index <= high_index: 
        num+=1
        mid = (low_index + high_index)//2
        guess = list[mid]
        if guess == item: 
            return "的索引為"+str(mid)+",查詢次數(shù)為"+str(num)
        if guess > item: 
            high_index = mid - 1
        else: 
            low_index = mid + 1

    return "值在數(shù)組中不存在,查詢次數(shù)為"+str(num) 
  • C#實(shí)現(xiàn)
        /// <summary>
        /// 二分查找每個(gè)數(shù)
        /// </summary>
        /// <returns></returns>
        public static string Binary_search(int[] list, int item)
        {           
            var num = 0;
            var low_index = 0;
            var high_index = list.Length - 1;
            while (low_index <= high_index) 
            {
                num += 1;
                var mid = (low_index + high_index)/2;
                var guess = list[mid];
                if (guess == item)
                {
                    return $"的索引為{mid}查詢次數(shù)為{num}";
                }
                else if (guess > item)
                {
                    high_index = mid - 1;
                }
                else
                {
                    low_index = mid + 1;
                }
            }
            return $"值在數(shù)組中不存在,查詢次數(shù)為{num}";
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡(jiǎn)述: 從這篇文章起就會(huì)開啟另一個(gè)系列就是上篇文章中提到的每周學(xué)習(xí)一個(gè)基本算法,會(huì)結(jié)合LeetCode上題目來(lái)做分...
    熊喵先森閱讀 845評(píng)論 0 0
  • 二分查找概念: 二分查找又稱折半查找,優(yōu)點(diǎn)是比較次數(shù)少,查找速度快,平均性能好;其缺點(diǎn)是要求帶查表為有序表,且插入...
    Fwwwddd閱讀 795評(píng)論 0 0
  • 二分查找 二分查找是著名、高效并有應(yīng)用廣泛的查找算法。 二分常規(guī)實(shí)現(xiàn) 1.循環(huán)實(shí)現(xiàn) 下面我用python語(yǔ)言實(shí)現(xiàn)循...
    但時(shí)間也偷換概念閱讀 734評(píng)論 0 1
  • 二分查找 假設(shè)要在電話簿中找一個(gè)名字以K打頭的人,(現(xiàn)在誰(shuí)還用電話簿?。┛梢詮念^開始翻頁(yè),直到進(jìn)入以K打頭的部分。...
    非問(wèn)閱讀 284評(píng)論 0 0
  • 二分查找又稱折半查找,它是一種效率較高的查找方法。、折半查找的算法思想:、將數(shù)列按有序化(遞增或遞減)排列,進(jìn)行折...
    辭令閱讀 302評(píng)論 0 0

友情鏈接更多精彩內(nèi)容