2

私の仕事は、Ruby を使用してより効率的な二分探索コードを作成することです。このリンクのロジックに従いました: http://www.cprogramming.com/discussionarticles/sorting_and_searching.html

私のコードは次のとおりです。

def bsearch(a, k)

  lower = 0
  upper = a.length-1

  while a[upper].to_f> k.to_f and a[lower].to_f< k.to_f
    low_diff = k.to_f -a[lower].to_f
    range_diff = a[upper].to_f-a[lower].to_f
    count_diff = upper-lower
    range = low_diff/range_diff * count_diff  + lower

    if k==a[lower]
      return lower

    if k.to_f > a[range].to_f
      lower = range+1
    else if k.to_f <  a[range].to_f
      upper =range
    else    
      lower = range
    end

  end
end

再確認しましたが、次のエラーが発生し続ける理由がわかりません。

unexpected $end , expecting kEND
4

2 に答える 2