以下是Javascript函数封装的冒泡排序:
function bubbleSort(array) {
const len = array.length;
for (let i = 0; i < len - 1; i++) {
for (let j = 0; j < len - 1 - i; j++) {
if (array[j] > array[j + 1]) {
[array[j], array[j + 1]] = [array[j + 1], array[j]];
}
}
}
return array;
}
代码解释:
-
function bubbleSort(array)
:定义一个函数,函数名为bubbleSort
,函数接受一个参数array
,即要排序的数组。 -
const len = array.length
:使用const
关键字定义一个常量len
,其值为数组array
的长度。len
将在后面的循环中使用。 -
for (let i = 0; i < len - 1; i++)
:使用for
循环遍历数组的元素,每次遍历从第一个元素开始,直到除了最后一个元素为止。变量i
用于迭代循环,每次迭代加1。 -
for (let j = 0; j < len - 1 - i; j++)
:在第一层循环内嵌套一层循环,该循环也是使用for
关键字定义的。循环起始位置为数组的第一个元素,结束位置为len - 1 - i
。变量j
用于迭代循环,每次迭代加1。 -
if (array[j] > array[j + 1])
:使用if
语句判断当前元素和下一个元素的大小,如果当前元素大于下一个元素,则进入条件块。 -
[array[j], array[j + 1]] = [array[j + 1], array[j]]
:使用数组解构赋值,交换当前元素和下一个元素的位置。 -
return array
:最后,返回排序后的数组。
冒泡排序的原理是,每次遍历数组,比较相邻的元素,如果顺序错误则交换它们的位置。这样一次遍历之后,最大或最小的元素就会移动到数组的末尾或开头。然后再从头开始遍历,直到所有元素都按照从小到大或从大到小的顺序排好。