pset3 binary search failing to find numbers at the ends of even-numbered array lengths

Pseudocode 1:

bool search needle, haystack, size
    if size is negative, return false

    for i++ until n-1

        middle equals n / 2 

        if value equals middle element, return true

        else if it's below the middle element
            recalculate middle
            if value equals middle element, return true

        else if it's above the middle element
            recalculate middle
            if value equals middle element, return true

    return false // if cannot find item

Pseudocode 2:

bool search needle, haystack, size
    if size is negative, return false

    for i++ until n-1

        int low, mid, high 

        if value equals middle element, return true

        else if it's below the middle element
            recalculate high
            recalculate middle
            if value equals middle element, return true

        else if it's above the middle element

            recalculate low
            recalculate middle
            if value equals middle element, return true

    return false // if cannot find item
/r/cs50 Thread