算法之二分查找

排序算法

二分查找

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

時間復(fù)雜度 空間復(fù)雜度
O (log n )
  • Python實現(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#實現(xiàn)
        /// <summary>
        /// 二分查找每個數(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)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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

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