【前端每日一题】day10——js实现冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历待排序的列表,比较相邻的元素并根据需要交换它们。这个过程重复进行,直到列表完全有序。以下是如何用JavaScript实现冒泡排序的详细步骤和代码示例:

冒泡排序的基本思想
从列表的第一个元素开始,依次比较相邻的两个元素。
如果前一个元素大于后一个元素,则交换这两个元素。
每次遍历后,最大的元素会“冒泡”到列表的末尾。
对列表进行多次遍历,直到没有任何元素需要交换为止。

function bubbleSort(arr) {
  let len = arr.length;
  let swapped;

  // 遍历数组
  for (let i = 0; i < len - 1; i++) {
    swapped = false;

    // 内层循环遍历数组,进行比较和交换
    for (let j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {
        // 交换元素
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
        swapped = true; // 标记发生了交换
      }
    }

    // 如果在一次遍历中没有发生交换,说明数组已经有序,可以提前结束
    if (!swapped) {
      break;
    }
  }

  return arr;
}

// 示例使用
const array = [64, 34, 25, 12, 22, 11, 90];
console.log("Original array:", array);
const sortedArray = bubbleSort(array);
console.log("Sorted array:", sortedArray);

冒泡排序虽然简单易懂,但它的时间复杂度是O(n^2),对大数据集的排序效率较低。在实际应用中,通常会选择更高效的排序算法(如快速排序或归并排序)。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值