Сортировка пузырьков: это означает, что элементы в массиве в порядке от больших до маленьких или от малого до большого.
var array = [9,8,7,6,5,4,3,2,1];
Сравнение в первом раунде: 8,7,6,5,4,3,2,1,9 поменялся 8 раз i = 0 j = массив.
Сравнение второго раунда: 7,6,5,4,3,2,1,1,8,9 поменялось 7 раз I = 1 j = массив. Length-1-I
Сравнение третьего раунда: 6,5,4,3,2,1,7,8,9 подмен 6 раза I = 2 j = массив. Length-1-I
Сравнение 4-го раунда: 5,4,3,2,1,6,7,8,9 замене в 5 раз I = 3 j = массив. Length-1-I
Сравнение в пятом раунде: 4,3,2,1,5,6,7,8,9 замене 4 раза I = 4 j = массив. Length-1-I
Сравнение шестого раунда: 3,2,1,4,5,6,7,8,9 замене в 3 раза I = 5 j = массив. Length-1-I
Сравнение 7-го раунда: 2,1,3,4,5,6,7,8,9 замене в 2 раза I = 6 j = массив. Length-1-I
Сравнение 8-го раунда: 1,2,3,4,5,6,7,8,9 замене 1 время i = 7 j = массив. Length-1-I
Реализация кода:
var temp; var array = [9,8,7,6,5,4,3,2,1]; // количество управляющих раунд управления внешним циклом для (var i = 0; i <array.length-1; i ++) {// Количество сравнения контроля внутреннего цикла для (var j = 0; j <array. переменные temp = массив [j]; массив [j] = массив [j+1]; массив [j+1] = temp; }}} console.log (массив);Оптимизация кода:
var temp, bool, m = 0; var array = [9,8,7,6,5,4,3,2,1]; для (var i = 0; i <array.length-1; i ++) {// переключить Bool в открытии и принципе закрытия bool = true; for (var j = 0; j <array.length-1-i; j ++) {if (array [j]> array [j+1]) {// подменять две переменные temp = array [j]; массив [j] = массив [j+1]; массив [j+1] = temp; bool = false; // переключить переключатель}} // Если IF во внутреннем цикле не выполняется (переключатель отключен, выполнить следующее оператор); if (bool) {break; } m ++;} console.log (массив+", сравнить"+m+"wheel");Примечание. Лучший случай сравнения - 0 раундов, а худший случай - 8 раундов.
Давайте посмотрим на алгоритм сортировки пузыря
// Сортировка пузырьков Javascript и напрямую добавлять ее к прототипу базового типа // Здесь мы используем код эссенции языка JavaScript, чтобы добавить методы к прототипу основного типа. // Поскольку сами массив и строка являются конструкторами, они создают объекты через новую строку конструктора, поэтому массив. Прототип и строка. if (! this.prototype [name]) {// Лучше всего судить, сначала ли этот метод в прототипе. Если это. Прототип [name] = func; } вернуть это; }; Array.method ('bubble', function () {// Алгоритм пузырьков зацикливает длину массива в общей сложности, то есть линейные времена, а наименьший-на последнем варне = this.length; var i = 0, j = 0, tmp = 0; для (i = 0; i <len; i ++) (j = 0; {console.log () if (j]> это [j+1]) {tmp = this [j]; предупреждение ([21,32,1,31,22,45,68,37,]. Bubble ());Я посмотрел на код другого фронтального инженера, Xifeng Shouma. В первом слое для петли флаг обмена является ложным. Когда есть обмен, это становится правдой. Суждение добавляется после второго слоя для концов петли. Если это ложно, то есть обмен спереди на спину не существует, и это доказывает, что размерский заказ верен, вы можете вырваться, чтобы выпрыгнуть из внешнего цикла.
// массивы, которые необходимо сортировать, var list = массив (23, 45, 18, 37, 92, 13, 24); // длина массива var n = list.length; // Временные переменные в порядке обмена var tmp; //////флаг обмена var exchange; // по максимум n -1 порядка для (var time = 0; time <n - 1; time ++) {Exchange = false; for (var i = n - 1; i> time; i-) {if (list [i] <list [i - 1]) {Exchange = true; tmp = list [i - 1]; список [i]; список [i] = tmp; }} // Если в этом порядке нет обмена, алгоритм прекращается рано if (! Exchange) {break; }} alert ('массив сортируется:' + list + ', n был организован в общей сложности' + time + 'walk');Я раньше собирал алгоритм сети, что довольно хорошо. Пожалуйста, посмотрите на это.
функция Bubblesort (массив) {var length = array.length; var temp; var Issort = false; for (var i = 1; i <length; i ++) {issort = false; for (var j = 0; j <length - i; j ++) {if (array [j]> array [j+1]) {// swap temp = array [j]; массив [j] = массив [j+1]; массив [j+1] = temp; Issort = true; }} if (! Issort) Break; // Если обмен не происходит, выйдите из цикла}} var array = [10, -3,5,34, -34,5,0,9]; Bubblesort (массив); for (var i = 0; i <array.length; i ++) {document.write (array [i]+""); }Хорошо, давайте подведем их сегодня для вас. Я надеюсь, что друзья будут полезны для изучения сортировки пузырей JavaScript.