нет, разница есть. давайте разберемся:
первая итерация цикла i, первая итерация цикла j. i = 0, j = 1. 3 > 5? нет, продолжаем, стартуем 2 итерацию цикла j: i = 0; j = 2, 3 > 15? нет, продолжаем, стартуем…
…
4 итерация цикла j: i = 0; j = 4, 3 > 2? да, запишем 2 в буфер, 3 перезаписываем на позицию 4 массива, достаем из буфера 2 и ставим в 0 позицию массива.
5 итерация цикла j: i = 0; j = 5, 2 > 1? нет, заканчиваем цикл j.
[2, 5, 15, 6, 3, 1]
вторая итерация цикла i, первая итерация цикла j; …
…
…
[1, 2, 15, 6, 5, 3]
третья итерация цикла i ща будет жесть, хардкор, уберите детей от экрана
i = 2, j = 1; 15 > 2 ? да, записываем 2 в буфер, 15 помещаем на 1 позицию массива, а 2 достаем из буфера в 2 позицию массива.
напоминаю, что сейчас массив выглядит как [1, 15, 2, 6, 5, 3]
и дальше ошибка только будет накапливаться, т.к. ни одна цифра не будет больше 15
применение же j = i + 1 не будет обращаться к цифрам уже отсортированным. т.е. на третьей итерации цикла i мы не будем опрашивать цифры массива в 0, 1, 2 позициях.
ЛИБО
мы начинаем оба цикла с нуля и самые большие элементы скапливаются в начале. тут мы либо делаем реверс массива, либо меняем знак на <
в условии и тогда они будут скапливаться в конце.
вообще добавьте в цикл вывод в консоль, чтобы посмотреть как можно поиздеваться над циклами
ъыъ
var numbers = [3, 5, 15, 6, 2, 1];
for (var i = 0; i < numbers.length; i++) {
for (var j = 0; j < numbers.length; j++) {
if (numbers[i] < numbers[j]) {
var count;
count = numbers[j];
numbers[j] = numbers[i];
numbers[i] = count;
console.log(numbers);
}
}
}