поиск — линейный или двоичный поиск -Переполнение стека

У меня есть код, который я написал, и он работает очень хорошо. За исключением того, что я не уверен, является ли то, что я написал, линейным или бинарным поиском ?! Я действительно запутался в различиях. Может ли кто-нибудь прояснить различия и каков мой код, чтобы я мог объяснить его кому-то?

-Код ниже ищет значение, введенное пользователем. И проходит через CSV-файл данных. Затем я сохраняю все значения в новый массив, который имеет результаты. Надеюсь, это имеет смысл.

Я просто хочу знать, является ли мой код линейным или двоичным? Я так запутался в них *

$SearchThis = isset($_POST['Search']) ? $_POST['Search'] : '';
//empty()
$SearchThis = !empty($_POST['Search']) ? $_POST['Search'] : '';// Grabs the csv file (and its existing data)  and makes it into an array
$csv = array();
$lines = file('data/StaffData.csv', FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
$csv[$key] = str_getcsv($value);
}//A new array which will display the search results
$new_csv = array();

//This displays which rows have matched the search (it is put in an array)

//Looks through full names
$keys = array_keys(array_column($csv, 0), $SearchThis);  //  original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}
//Looks through phone numbers
$keys = array_keys(array_column($csv, 1), $SearchThis);  // original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}
//Looks through gender
$keys = array_keys(array_column($csv, 2), $SearchThis);  // original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}
//Looks through Birthday
$keys = array_keys(array_column($csv, 3), $SearchThis);  // original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}

//Looks through Type of work
$keys = array_keys(array_column($csv, 4), $SearchThis);  // original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}

0

Решение

ваш код выполняет линейный поиск, бинарный поиск требует сортировки данных, в вашем случае это обычный файл, плюс в бинарном поиске вы начинаете поиск с середины и сравниваете значение, которое вы ищете, со значением в середине и решить, следует ли идти влево или вправо в зависимости от того, как сортируются ваши данные.
Надеюсь, это немного помогло.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]