
function cmp(v1, v2) {
return v1 - v2;
}
function swap(i1, i2, array) {
let tmp = array[i1]
array[i1] = array[i2]
array[i2] = tmp
}
function bubleSort(array) {
for (let end = array.length; end > 0; end--) {
for (let begin = 1; begin < end; begin++) {
if (cmp(array[begin],array[begin-1]) < 0) {
swap(begin, begin-1,array)
}
}
}
}
function bubleSort1(array) {
for (let end = array.length; end > 0; end--) {
let sort = false
for (let begin = 0; begin < end; begin++) {
if (cmp(array[begin],arra[begin+1]) < 0) {
swap(begin,begin+1,array)
sort = true
}
}
if (!sort) {
break
}
}
}
function bubleSort2(array) {
for (let end = array.length - 1; end > 0; end--) {
let sortedIndex = 1;
for (let begin = 1; begin <= end; begin++) {
if (cmp(array[begin], array[begin - 1]) < 0) {
swap(begin, begin - 1, array)
sortedIndex = begin
}
}
end = sortedIndex
}
}