Following is the code that I've written for helpers.c and it uses Selection sort and Binary Search

***[code removed to comply to academic honesty]***
<!-- language: lang-c -->

    /**
     * Sorts array of n values.
     */
    void sort(int values[], int n)
    {
        // TODO: implement an O(n^2) sorting algorithm i.e. Selection Sort
        int temp;
        for (int i = 0; i < n - 1; i++)
        {
            int min = values[i];
            
            for (int j = i + 1; j < n; i++)
            {
                if(values[j] < values[min])
                min = values[j];
            
                if (min != values[i])
                {
                    temp = values[min];
                    values[min] = values[i];
                    values[i] = temp;
                }
            }
            
        }
        
    }

I'm unable to figure out that why is it giving me segmentation fault error whenever I run it. What is causing this bug?

EDIT:

Code for Binary Search

    bool search(int value, int values[], int n)
    {
        // TODO: implement a searching algorithm i.e. Binary Search
        if (n == 1 && values[0] == value)
        {
            return true;
        }
        
        while (n > 1)
        {
            int middle = round(n / 2); 
    
            if (value == values[middle])
            {
                return true;
            }    
            else if (value < values[middle])
            {
                for(int p = middle - 1; p > 0; p--)
                {
                    if (value == values[p])
                    {
                        return true;
                    }
                }
            }
            else if (value > values[middle])
            {
                for(int p = middle + 1; p <= n; p++)
                {
                    if (value == values[p])
                    {
                        return true;
                    }
                                    
                }
            }
            else
                return false;
            
        }
        return false;
    }