在JavaScript开发中,排序是一项基础而重要的操作。本文将探讨JavaScript中几种常见的排序算法,包括它们的原理、实现方式以及适用场景。
1、冒泡排序
1.1、原理
通过比较相邻两个数的大小,交换位置排序:如果后一个数比前一个数小,则交换两个数的位置,重复这个过程,直到所有的数据按照升序排列。
1.2、代码实现
采用两层嵌套循环的方案,外层循环控制比较的轮数,内层循环用于比较相邻数据和交换位置
let Arr = [2, 5, 3, 7, 9, 1, 0, 6, 23, 12]
/**
* 冒泡排序:
* 时间复杂度O(n^2)
* 原理:比较相邻的元素,如果第一个比第二个大,就交换它们两个
* 注意:冒泡排序是原地排序算法,会改变原数组中元素顺序
* @param {*} arr
* @returns
*/
const bubbleSort = (arr) => {
let len = arr.length;
if (len <= 1) return arr;
for (let i = 0; i < len; i++) {
// 提前退出冒泡循环的标志位
let swappend = false;
for (let j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
const temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp