javascript排序算法如何实现_有哪些常见的排序方法

admin 百科 16
JavaScript排序需手写以避免sort()默认字符串排序错误;冒泡排序稳定但慢,快排平均O(n log n)但不稳定,归并排序稳定且复杂度恒定O(n log n),原生sort不稳定,对象排序需自定义比较函数。

javascript排序算法如何实现_有哪些常见的排序方法-第1张图片-佛山资讯网

JavaScript 中实现排序算法,核心是理解每种算法的逻辑,并用 JS 语法表达出来。数组的 sort() 方法虽方便,但默认按字符串 Unicode 码点排序,处理数字时容易出错(如 [10, 2, 33].sort() 得到 [10, 2, 33]),所以掌握手写排序对理解数据结构、调试和面试都很重要。

冒泡排序(稳定、简单、适合小数据)

原理是重复遍历数组,两两比较相邻元素,把较大(或较小)的“浮”到一端。每轮确定一个极值位置,共需 n−1 轮。

关键点:外层控制轮数,内层控制比较范围(每轮减少一个末位);可加优化——若某轮无交换,说明已有序,提前退出。

示例代码:

立即学习“Java免费学习笔记(深入)”;

function bubbleSort(arr) {
  const res = [...arr];
  const n = res.length;
  for (let i = 0; i < n - 1; i++) {
    let swapped = false;
    for (let j = 0; j < n - 1 - i; j++) {
      if (res[j] > res[j + 1]) {
        [res[j], res[j + 1]] = [res[j + 1], res[j]];
        swapped = true;
      }
    }
    if (!swapped) break;
  }
  return res;
}

登录后复制

快速排序(高效、常用、分治思想)

选一个基准值(pivot),将数组分为三部分:小于 pivot、等于 pivot、大于 pivot,再递归排序前后两部分。平均时间复杂度 O(n log n),原地排序但不稳定。

注意:避免最坏情况(已排序数组选首/尾为 pivot → O(n²)),可用随机选 pivot 或三数取中法优化。

标签: javascript java js 大数据 app 排序算法 冒泡排序

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~