Насколько я понимаю, cpu не при чём. На последнем графике явно виден пик iowait, значит, вам надо смотреть в сторону дисковой активности и всего такого. Настройте мониторинг IO, там будет понятно.
Ваш "Метод, который меняет два числа местами" на самом деле не делает вообще ничего (передача аргументов по значению и всё такое). И у вас изначально неправильный подход - вы запоминаете min/max, но не запоминаете их индексы в массиве.