線形探索法・・・大量のデータの中から特定のデータを探し出す。
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;
}