アルゴリズムとデータ構造, PHP

PHP 線形探索(リニアサーチ)

 

線形探索とは

ループでぐるーっと探索して、ifで見つけるやつ。

 

実装コード

https://github.com/yuukanehiro/AlgorithmsDataStructure/blob/main/Search/LinearSearch.php

 

 

<?php

printf("テスト結果は「%s」です。", testLinearSearch());

/**
 * 線形探索
 *
 * @param array $data
 * @param int $target
 * @return int
 */
function linearSearch(array $data, int $target): int
{
    foreach ($data as $key => $value) {
        if ($value === $target) {
            return $key;
        }
    }
}

/**
 * テストコード
 */
function testLinearSearch(): string
{
    for ($i = 0; $i < 1000; $i++) {
        $data = range(0, 100);
        shuffle($data);
        $max = count($data);
        $target_key = rand(0, $max-1); // サイコロ
        $key = linearSearch($data, $data[$target_key]);

        if ($data[$key] !== $data[$target_key])
        {
            return '失敗';
        }
    }
    return '成功';
}

 

 

 

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)