Код не смотрел, но если правильно понял условие, то нужно обойти в цикле каждый болт и посчитать, сколько для каждого болта есть гаек, у которых размер меньше.
Описываю случай, когда подразумевается, что все размеры уникальны. Для не уникальных придется идею чуть модифицировать.
Например болты А = { 2, 3, 7, 5, 4 } и гайки B = { 3, 7, 2, 4, 5 }
Берем первый болт А0 = 2. Сравнивая с гайками, получаем, что гаек, которых меньше, чем А0 ноль. Это и будет позиция (нулевая) А0 в отсортированном массиве. Тут же кстати можно найти при обходе и тот случай, где они равны (B2) - и B2 ставим тоже в нулевую позицию. (Если можно использовать доп. массив то просто формируем вставляя данные в нужные позиции, если нет - то меняем местами элементы в существующем)
Берем второй болт A1 = 3. Кол-во меньших гаек - 1. Значит A1 так и остается в A1. Попутно нашли B0, которым ставим в позицию B1.
Третий болт A2 = 7. Кол-во меньших гаек - 4. Значит A2 ставим в A4. Находим равную гайку - B1 и ставим ее тоже с индексом 4, то есть в B4. И так далее до конца. Получаем 2 отсортированных массива по возрастанию.
Правда получается, что сложность квадратичная, будет время постараюсь подумать над этим. Если что-то не так понял из условия, то уточните как раз.