У меня есть следующая проблема, с которой я сталкиваюсь, особенно в некоторых частях, где мне дается часть кода.
Описание проблемы: При наличии массива целых чисел вернуть массив, содержащий одинаковые целые числа, отсортированные от наибольшего к наименьшему, используя сортировку вставкой. Мы будем использовать соглашение о рассмотрении только той части массива, которая начинается с данного индекса и заканчивается в другом. Таким образом, рекурсивный вызов может работать через любую часть массива. Первоначальный вызов передается с индексом 0 и индексом до последнего элемента.
inserttionSort ([2, 1, 3, -2, 8], 0, 4) → [8, 3, 2, 1 , -2] inserttionSort ([2, 6, -4], 0, 2) → [6, 2, -4] inserttionSort ([2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22], 0, 10) → [22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]
Код дан:
public int[] insertionSort(int[] nums, int begin, int end) {
}
void insert(int[] nums, int begin, int end, int element) {
int index=end;
while(index>=begin && nums[index]<element) {
index--;
}
for(int i=end; i>index; i--) {
nums[i+1] = nums[i];
}
nums[index+1] = element;
}
У меня возникли проблемы с пониманием того, что означает переменная "element" в методе "insert".
Вот код, который я написал для него.
public int[] insertionSort(int[] nums, int begin, int end) {
if(begin >= end) return nums;
else if (begin < end){
int element = nums.length;
insert(nums, begin, end, element);
insertionSort(nums, begin, end);
}
return nums;
}
void insert(int[] nums, int begin, int end, int element) {
int index=end;
while(index>=begin && nums[index]<element) {
index--;
}
for(int i=end; i>index; i--) {
nums[i+1] = nums[i];
}
nums[index+1] = element;
}
Это ошибки, которые я получаю из своего кода: