2016-10-04 11 views
0

私は四元探索アルゴリズムのコードを書いています。私が得た唯一の説明は、バイナリ検索アルゴリズムの変更ですが、配列を2つに分割する代わりに、配列を4つに分割します。四元探索アルゴリズム

私はちょうどこのような検索がどのように動作するはずであるかについて少し混乱しています。私は擬似コードのために高値と低値を検索しましたが、この検索の仕組みを説明したり可視化したりするYouTube動画だけでも検索しましたが、何も見つかりませんでした。

疑わしいコードや、この検索アルゴリズムがどのように機能するかについての素早く汚れた説明はありますか?

ありがとうございました!

+0

コードに関する質問をしてください。 – karan

+0

このalgoを整数で使用していると仮定すると、検索アルゴリズムは再帰関数です。 4つの要素の配列を作成し、検索する値が要素nよりも大きく、要素n + 1よりも小さい値であることを確認します。フィッティング要素とあなたの値をとり、この2つのパラメータを使って関数を(再帰的に)呼び出します。 – Radinator

+0

それは理にかなっています。ありがとうございました! –

答えて

2
QuaternarySearch(A[0. . n-1], value, low, high) 
    while high ≥ 1 
     p1/4 = low + ((high – low)/4)   //first quarter point 
     p1/2 = low + ((high – low)/2)   //second quarter point 
     p3/4 = low + (3(high – low)/4)  //third quarter point 
     if A[p1/4] = value 
      return A[p1/4] 
     else if A[p1/2] = value 
      return A[p1/2] 
     else if A[p3/4] = value 
      return A[p3/4] 
     else if A[p1/4] > value 
      return QuaternarySearch(A, value, low, p1/4-1) 
     else if A[p1/2] > value 
      return QuaternarySearch(A, value, p1/4+1, p1/2-1) 
     else if A[p3/4] > value > A[p1/2] 
      return QuaternarySearch(A, value, p1/2+1, p3/4-1) 
else      //if A[p3/4] < value 
      return QuarterSearch(A, value, p3/4 + 1, high) 
関連する問題