Линейный поиск

Алгоритмы / Поиск

#Time Complexity O(n)
#the plain scan: compare element after element;
#the array comes by its name (local -n), the index is printed
search() {
    local -n arr=$1
    local x=$2
    local i
    for i in "${!arr[@]}"; do
        if ((arr[i] == x)); then
            echo "$i"
            return
        fi
    done
    echo -1
}

items=(2 3 5 7 11 13 17)

index1=$(search items 1)
#index1 is -1
index7=$(search items 7)
#index7 is 3
index19=$(search items 19)
#index19 is -1

echo "index1 is $index1"
echo "index7 is $index7"
echo "index19 is $index19"