0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

アルゴリズムの勉強

Last updated at Posted at 2022-04-03

線形探索法・・・大量のデータの中から特定のデータを探し出す。
        1つ1つの要素を順に調べていく方法。

入力 データの数
   探したいデータ
出力 データがあればデータがある配列の番号、データがなければデータなし
   数列の最小値

// 線形探索法
void LinearSearch()
{
    int data_num;						// データの数
    int data_target;					// 探したいデータ
    int data_min = 20000000;			// 最小値を保存する
    int find_index = -1;				// 見つけた配列の番号
    std::vector<int> data;	// 配列

    // データの数と探索する値を入力する
    std::cin >> data_num >> data_target;

    // データを格納する
    data.resize(data_num);
    for (int i = 0; i < data_num; i++)
    {
	    data[i] = rand() % 100;
    }

    // 線形探索
    bool exist = false;
    for (int i = 0; i < data_num; i++)
    {
	    // 一致するデータが見つかったら
	    if (data_target == data[i])
	    {
		    // データある番号を保存する
		    find_index = i;
		    exist = true;
	    }

	    // 探索している値が今の最小値より低ければ、最小値を更新
	    if (data[i] < data_min)
	    {
		    data_min = data[i];
	    }
    }

    // 出力
    if (exist)
    {
	    std::cout << "データが : " << find_index << "番目のある" << std::endl;
    }
    else
    {
	    std::cout << "データなし" << std::endl;
    }
    std::cout << "最小値 : " << data_min << std::endl;
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?