亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Ruby實現(xiàn)二分搜索(二分查找)算法的簡單示例

 更新時間:2016年07月02日 17:19:05   作者:lucifercn  
二分查找是一種在已經(jīng)過排序的數(shù)組中搜索指定元素用的算法,這里我們就來看一下Ruby實現(xiàn)二分搜索(二分查找)算法的簡單示例:

在計算機科學(xué)中,二分搜索(英語:binary search),也稱折半搜索(英語:half-interval search)、對數(shù)搜索(英語:logarithmic search),是一種在有序數(shù)組中查找某一特定元素的搜索算法。搜索過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結(jié)束;如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。如果在某一步驟數(shù)組為空,則代表找不到。這種搜索算法每一次比較都使搜索范圍縮小一半。

復(fù)雜度分析
時間復(fù)雜度:
折半搜索每次把搜索區(qū)域減少一半,時間復(fù)雜度為201672171630230.png (57×31)。(n代表集合中元素的個數(shù))
空間復(fù)雜度:
201672171655530.png (39×25)雖以遞歸形式定義,但是尾遞歸,可改寫為循環(huán)。

Ruby代碼示例

def binseaech(arr, i)
  low, high = 0, arr.size - 1
  while (low < high)
    mid = (low + high)/2
    if arr[mid] < i
      low = mid + 1
    elsif arr[mid] > i
      high = mid - 1
    else
      return mid
    end
  end
end

arr = [1,3,12,34,35,46,91,108]
puts binseaech(arr, 91)

結(jié)果:

6
[Finished in 0.1s]

相關(guān)文章

  • 深入理解Ruby中的代碼塊block特性

    深入理解Ruby中的代碼塊block特性

    聽到代碼塊這個翻譯,你或許會聯(lián)想到類或者結(jié)構(gòu)體,但block并不是這些東西,這里就帶著大家來深入理解Ruby中的代碼塊block特性
    2016-05-05
  • Ruby實現(xiàn)的圖片濾鏡算法代碼

    Ruby實現(xiàn)的圖片濾鏡算法代碼

    本文給大家分享的是使用ruby實現(xiàn)的幾種圖片濾鏡的算法,包括灰度、二值、底片、浮雕。非常的簡單實用,有需要的小伙伴可以參考下
    2017-01-01
  • 用實際代碼演示Ruby的容易被誤解的6個特性

    用實際代碼演示Ruby的容易被誤解的6個特性

    這篇文章主要介紹了用實際代碼演示Ruby的容易被誤解的6個特性,采集自IBM官方網(wǎng)站的開發(fā)者文檔,需要的朋友可以參考下
    2015-04-04
  • 快速正確的安裝 Ruby, Rails 運行環(huán)境

    快速正確的安裝 Ruby, Rails 運行環(huán)境

    對于新入門的開發(fā)者,如何安裝 Ruby, Ruby Gems 和 Rails 的運行環(huán)境可能會是個問題,本頁主要介紹如何用一條靠譜的路子快速安裝 Ruby 開發(fā)環(huán)境
    2014-07-07
  • 在Mac OS X下安裝Ruby運行環(huán)境的詳細(xì)步驟

    在Mac OS X下安裝Ruby運行環(huán)境的詳細(xì)步驟

    這篇文章主要給大家介紹了在Mac OS X下安裝Ruby運行環(huán)境的方法步驟,文中介紹的很詳細(xì),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-02-02
  • Ruby中類變量和實例變量的比較

    Ruby中類變量和實例變量的比較

    這篇文章主要介紹了Ruby中類變量和實例變量的比較,本文講解了4點類變量和實例變量的不同之處,并給出了代碼實例,需要的朋友可以參考下
    2015-05-05
  • Ruby中的鉤子方法詳解

    Ruby中的鉤子方法詳解

    這篇文章主要介紹了Ruby中的鉤子方法詳解,本文講解了什么是鉤子方法、included、Devise中的 included、extended、ActiveRecord中的 extended、prepended、inherited等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Rails實現(xiàn)字段加密存儲

    Rails實現(xiàn)字段加密存儲

    這篇文章主要介紹了Rails實現(xiàn)字段加密存儲的方法以及具體的示例代碼,非常實用,需要的朋友可以參考下
    2017-11-11
  • 詳細(xì)解析Ruby中的變量

    詳細(xì)解析Ruby中的變量

    這篇文章主要介紹了詳細(xì)解析Ruby中的變量,是Ruby學(xué)習(xí)中最基礎(chǔ)的知識之一,需要的朋友可以參考下
    2015-05-05
  • ruby 雜項

    ruby 雜項

    ruby 雜項...
    2007-11-11

最新評論