Почему здесь прибавляют 1?

89
01 сентября 2021, 22:20

Добрый день не могу разобраться с кодом почему к переменной in добавляют 1

public void bubbleSorter(){     
for (int out = elems - 1; out >= 1; out--){  
        for (int in = 0; in < out; in++){      
            if(a[in] > a[in + 1])              
                toSwap(in, in + 1);        
Answer 1

Сравнивают (и в случае чего - меняют местами) два соседних элементах. Их индексы отличаются на 1. Вот этот один и прибавляют.

Answer 2

Хотя код приведён не полностью (отсутствует toSwap), очевидно, что это реализация алгоритма сортировки методом пузырька, причем сортировки по возрастанию. Алгоритм проходит массив от начала и до конца, сравнивая попарно соседние элементы, Если элементы стоят в неправильном порядке, то они меняются местами, таким образом, после первого прохода на конце массива оказывается максимальный элемент. Затем проход массива повторяется, и на предпоследнем месте оказывается другой наибольший после максимального элемент и т.д. В итоге наименьший элемент постепенно перемещается к началу массива («всплывает» до нужной позиции как пузырёк в воде).

public static void bubbleSort(int[] arr){ 
    /* Внешний цикл каждый раз сокращает фрагмент массива,  
      так как внутренний цикл каждый раз ставит в конец 
      фрагмента максимальный элемент */    
    for(int i = arr.length-1 ; i > 0 ; i--){ 
        for(int j = 0 ; j < i ; j++){ 
            /*Сравниваем элементы попарно,  
              если они имеют неправильный порядок,  
              то меняем местами 
            if( arr[j] > arr[j+1] ){ 
                int tmp = arr[j]; 
                arr[j] = arr[j+1]; 
                arr[j+1] = tmp; 
            } 
        } 
    } 
}

READ ALSO
Не могу присвоить в переменную значение &quot;+&quot;, считанное Scannerом

Не могу присвоить в переменную значение "+", считанное Scannerом

Программа - калькуляторВвожу в консоли в строку значения, сканер их считывает

188
динамическое добавление input с уникальным id

динамическое добавление input с уникальным id

Передо мной стоит задача по нажатию добавлять input с кнопкой удаления этого инпутаМаксимальное кол-во инпутов 4

256
Как удалить комментарии из DOM дерева?

Как удалить комментарии из DOM дерева?

Пытаюсь удалить комментарии из контейнера, так как потом работаю с потомками этого контейнера используя firstChild в циклеУдаляю ненужных потомков...

145