Никак не могу понять этот алгоритм ,Может кто объяснит мне поэтапно... Буду благодарен
searchKey=55;
for(j=0;j<nElems;j++){ // Поиск удаляемого элемента
if(arr[j]==searchKey){
break;
}
}
for(int k = j;k<nElems-1;k++){
// Сдвиг последующих элементов
arr[k] = arr[k+1];
}
nElems--; // Уменьшение размера
j в которой будет находиться индекс искомого элемента в массивеbreakj содержит индекс искомого значения в массивеjnElrms уменьшиласьДанный кусок кода "вырезает" из входной последовательности первый элемент со значением searchKey
searchKey - искомое значение в последовательности
for(j=0;j<nElems;j++) - проходим по последовательности от 0до nElems (скорее всего - это длина последовательности)
if(arr[j]==searchKey) { break; } - если j-й элемент последовательности arr равен searchKey (в данном случае 55), тогда break (прекращаем работу цикла, при этом j = индексу элемента со значением searchkey
for(int k = j;k<nElems-1;k++){
arr[k] = arr[k+1];
}
Проходим по этой же последовательности, только теперь не от начала до конца, а от j до nElems - 1 и текущему элементы последовательности присваиваем значение следующего (проще говоря, вырезаем элемент со значением searchKey)
nElems-- - уменьшаем длину последовательности на единицу.
Но, если говорить откровенно, то абсолютно согласен с оратором в комментариях. Вы используете массив и "вырезаете" из него значение, но вырезанием, честно говоря, это назвать нельзя. Так как вы вместо него подставляете оставшиеся элементы массива, но от этого его размер не изменяется, он как состоял из n элементов, так и состоит.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости