Нужно поменять максимальное и минимальное значение местами

Нужно поменять максимальное и минимальное значение местами. не понимаю в чём ошибка. Должен выводить "5 2 3 4 1" а выводит "1"

public int swapArrayMaxAndMin(int array[])
    {   
        int max = 0; int min = 0;

        for(int i = 0; i < array.length; i++)
        {
            if(array[max] < array[min])
            {
                max = i;
            }
            if(array[min] > array[max])
            {
                min = i;
            }
        }

        int tmp = array[max];
        array[max] = array[min];
        array[min] = tmp;

        return tmp;
    }

    public void showArray()
    {
        int array[] = new int[] {1, 2, 3, 4, 5};
        
        for(int i = 0; i < array.length; i++)
        {
            System.out.print(array[i] + " ");
        }

        System.out.println(swapArrayMaxAndMin(array));

    }

Ответы (1 шт):

Автор решения: Danis
int tmp = array[max];
array[max] = array[min];
array[min] = tmp;

return tmp;

место tmp надо возвращать array


if(array[max] < array[min])
            {
                max = i;
            }
            if(array[min] > array[max])
            {
                min = i;
            }

надо поменять на это:

if (array[i] < array[min]){min = i;)
if (array[i] > array[max]){max = i;)
→ Ссылка