返回
JavaScript 实现排序算法——冒泡排序:轻松掌控有序世界
前端
2023-11-13 14:53:51
冒泡排序:简单直观的排序算法
冒泡排序算法(Bubble Sort)因其简单直观的思想而广受欢迎。它的核心思想是:将待排序的数据序列视为一串气泡,通过不断比较相邻气泡的大小,将较小的气泡向上移动,较大的气泡向下移动,直至所有气泡按从小到大的顺序排列。这个过程就像是在水面上不断冒泡,较小的气泡不断向上浮升,最终水面变得平静有序。
JavaScript 实现冒泡排序算法
使用 JavaScript 实现冒泡排序算法的步骤如下:
- 定义一个冒泡排序函数,接收待排序的数据序列作为参数。
- 在函数内部,使用双重循环遍历数据序列。外层循环控制排序的趟数,内层循环控制每一趟中相邻元素的比较和交换。
- 在内层循环中,比较相邻元素的大小,如果前一个元素大于后一个元素,则交换这两个元素的位置。
- 重复步骤 2 和步骤 3,直到没有更多需要交换的元素为止。
代码示例
function bubbleSort(array) {
let swapped;
do {
swapped = false;
for (let i = 0; i < array.length - 1; i++) {
if (array[i] > array[i + 1]) {
let temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
swapped = true;
}
}
} while (swapped);
return array;
}
const unsortedArray = [5, 3, 1, 2, 4];
console.log("Unsorted array:", unsortedArray);
const sortedArray = bubbleSort(unsortedArray);
console.log("Sorted array:", sortedArray);
冒泡排序算法的复杂度分析
冒泡排序算法的时间复杂度为 O(n^2),其中 n 是待排序的数据序列的长度。这是因为冒泡排序算法需要比较和交换相邻元素,而这个过程需要重复 n 次,并且每趟都需要比较 n 个元素。因此,冒泡排序算法的时间复杂度为 O(n^2)。
冒泡排序算法的优缺点
优点:
- 简单易懂,易于实现。
- 内存消耗小。
- 对于少量数据,其效率较高。
缺点:
- 时间复杂度高,不适用于大型数据集。
- 不稳定,即对于相同的元素,排序后的顺序可能会改变。
结语
冒泡排序算法虽然简单易懂,但由于其时间复杂度较高,因此不适用于大型数据集的排序。在实际应用中,通常会采用更高级的排序算法,如快速排序、归并排序等,以获得更好的排序性能。