Linear search

Computational complexity: O(N)

Enter target value and click "Start" to begin search

C

int linearSearch(int arr[], int n, int target) {
    for (int i = 0; i < n; i++) {
        if (arr[i] == target) return i;
    }
    return -1;
}

C++

int linearSearch(int arr[], int n, int target) {
    for (int i = 0; i < n; i++) {
        if (arr[i] == target) return i;
    }
    return -1;
}

Java

int linearSearch(int arr[], int target) {
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == target) return i;
    }
    return -1;
}

Go

func linearSearch(arr []int, target int) int {
    for i, val := range arr {
        if val == target {
            return i
        }
    }
    return -1
}

PHP

function linearSearch(array $arr, int $target): int {
    for ($i = 0; $i < count($arr); $i++) {
        if ($arr[$i] === $target) return $i;
    }
    return -1;
}

Perl

sub linearSearch {
    my ($arr_ref, $target) = @_;
    for (my $i = 0; $i < scalar(@{$arr_ref}); $i++) {
        if ($arr_ref->[$i] == $target) return $i;
    }
    return -1;
}

Python

def linearSearch(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i
    return -1

Ruby

def linearSearch(arr, target)
    arr.each_with_index do |val, i|
        return i if val == target
    end
    -1
end

Delphi

function LinearSearch(const Arr: array of Integer; Target: Integer): Integer;
var
    i: Integer;
begin
    for i := 0 to High(Arr) do
        if Arr[i] = Target then
            Exit(i);
    Result := -1;
end;

Rust

fn linearSearch(arr: &[i32], target: i32) -> Option<usize> {
    for (i, &val) in arr.iter().enumerate() {
        if val == target {
            return Some(i);
        }
    }
    None
}

Assembler

mov eax, target
xor ecx, ecx
search_loop:
    cmp ecx, n
    jge not_found
    mov edx, [arr + ecx*4]
    cmp edx, eax
    je found
    inc ecx
    jmp search_loop
found:
    ; ecx contains index
    ret
not_found:
    mov ecx, -1
    ret

JavaScript

function linearSearch(arr, target)
{
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] === target) return i;
    }
    return -1;
}

Lua

function linearSearch(arr, target)
    for i = 1, #arr do
        if arr[i] == target then
            return i
        end
    end
    return -1
end