Пример сортировки пузыря, двунаправленная сортировка пузырьков со слегка улучшенной визуализацией двунаправленной сортировки пузырьков.
Код очень прост, я не знаю, есть ли неизвестные ошибки.
Боже, пожалуйста, не жалуйся
Пример сортировки пузыря
var ls = [ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,1 3,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,80,45,64,52,79,77 ]; for (var i = 0; i <ls.length; i ++) {for (var j = i+1; j <ls.length; j ++) {if (ls [i]> ls [j]) {ls [i] = ls [i]+ls [j]; ls [j] = ls [i] -ls [j]; ls [i] = ls [i] -ls [j]; }}}Двусторонний пример сортировки пузырьков
var ls = [ 6,13,98,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,1 3,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,80,45,64,52,79,77 ]; for (var i = 0; i <ls.length; i ++) {for (var j = i+1; j <ls.length-i; j ++) {if (ls [nent-1-i] <ls [nent-j]) {ls [lent-1-i] = ls [lent-1-i]+ls [lent-j]; ls [nent-j] = ls [Lent-1-i] -ls [nent-j]; ls [lent-1-i] = ls [nent-1-i] -ls [nent-j]; ls [lent-1-i] = ls [nent-1-i] -ls [nent-j]; } // Следующее сравнение if (ls [i]> ls [j]) {ls [i] = ls [i]+ls [j]; ls [j] = ls [i] -ls [j]; ls [i] = ls [i] -ls [j]; } // предыдущее сравнение}}Пример слегка улучшенной двунаправленной пузырьки
var ls = [ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,1 3,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,80,45,64,52,79,77 ]; var lent = ls.length; for (var i = 0; i <ls.length; i ++) {for (var j = i*2; j <ls.length-2*i; j ++) {if (ls [i*2]> ls [j+1]) {ls [i*2] = ls [i*2]+ls [j+1]; ls [j+1] = ls [i*2] -ls [j+1]; ls [i*2] = ls [i*2] -ls [j+1]; ls [i*2] = ls [i*2] -ls [j+1]; } // Сохраняйте первое число во внутреннем слое в качестве минимального цикла if (ls [lent-i*2-1] <ls [nent-j-1]) {ls [nent-i*2-1] = ls [nent-i*2-1]+ls [nent-j-1]; ls [nent-j-1] = ls [nent-i*2-1] -ls [nent-j-1]; ls [nent-i*2-1] = ls [nent-j-1]; } //// Соберите предпоследний номер внутреннего слоя до максимального цикла, если (LS [Lent-2-I*2] <ls [nent-j-1]) {ls [nent-2-i*2] = ls [nent-2-i*2]+ls [nent-j-1]; ls [nent-j-1] = ls [Lent-2-i*2] -ls [nent-j-1]; LS [Lent-2-I*2] = ls [nent-j-1]; LS [Lent-2-I*2] = ls [nent-j-1]; LS [Lent-2-I*2] = ls [nent-j-1]; } // взаимность последнего if (ls [i*2+1]> ls [j+1]) {ls [i*2+1] = ls [i*2+1]+ls [j+1]; ls [j+1] = ls [i*2+1] -ls [j+1]; ls [i*2+1] = ls [i*2+1] -ls [j+1]; }//Следующий}}