2017-02-08 6 views
-8

このアルゴリズムは名前を持っていますか?私はそれの下に3つの例を挙げました。私はこのアルゴリズムを使用するいくつかのコードを文書化したいと思います、そして、私はそれを何を呼び出すべきかわかりません。私のバージョンはもっと複雑ですが、基本的にはこれです。このアルゴリズムは名前を持っていますか?

例1:

var maxValue = Int32.MinValue; 
foreach (var value in new [] {2, 3, 4, 4, -3, 1, 7}) 
{ 
    if (value > maxValue) 
     maxValue = value; 
} 

例2:

var minValue = Int32.MaxValue; 
foreach (var value in new [] {7, 6, 5, 4, 3, 2, 20, 42}) 
{ 
    if (value < maxValue) 
     minValue = value; 
} 

例3:

var mostPrimeFactors = 0; 
var valueWithMostPrimeFactors = 0 
foreach (var value in new [] {2, 4, 6, 8, 12, 60, 360}) 
{ 
    var primeFactorCount = GetPrimeFactors(value).Count; 
    if (primeFactorCount > mostPrimeFactors) 
    { 
     mostPrimeFactors = primeFactorCount 
     mostPrimeFactors = value; 
    } 
} 
+0

* algorithm *はどこですか?線形手順と思われる。 –

+0

私はプログラミング上の問題ではないので、この質問をトピックとしてクローズすることにしました。 – Servy

+0

あなたの最後の例はバグがあるようです。 'if'の2行目は' valueWithMostPrimeFactors = value; 'ではないでしょうか? –

答えて

0

彼らはすべてのTのように見えます線形探索の例である。 Wikipedia article

一致が検出されるまで、またはすべての要素が検索されるまで、ターゲット値のリストの各要素を順番にチェックします。

+0

これはあまり一致しません - OPのアルゴリズムは特定の値を探していないため、早期に返されることはありません。 –

+0

@BJMyers - いずれの場合も、OPはある種の極値を探しています。早期復帰に関しては、Wikipediaの定義の2番目の部分に注意してください:_...またはすべての要素が検索されるまで。 –

+1

私はまだ同意しません。 Wikipediaの記事ではさらに、線形検索*が各要素をチェックして、目標値に一致する要素が見つかるまで指定しています。アルゴリズムがリストの終わりに達すると、検索はうまく終了しません。* OPのアルゴリズムは、チェック対象の値を持っておらず、すべての要素が "検索"されていれば "失敗"して終了しません。 –

関連する問題