利用Javascript函数封装一个冒泡排序并详细解释每段代码
以下是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:最后,返回排序后的数组。
冒泡排序的原理是,每次遍历数组,比较相邻的元素,如果顺序错误则交换它们的位置。这样一次遍历之后,最大或最小的元素就会移动到数组的末尾或开头。然后再从头开始遍历,直到所有元素都按照从小到大或从大到小的顺序排好。