📜  排序 js - Javascript (1)

📅  最后修改于: 2023-12-03 14:54:42.240000             🧑  作者: Mango

JS排序算法介绍

排序是程序员经常需要用到的技能之一。在JavaScript中提供了多种排序算法,其中包括快速排序、冒泡排序、插入排序等。

快速排序

快速排序是一种常用的排序算法,其原理是将待排序的数列取一个基准数,将小于基准数的数放到左边,大于基准数的数放到右边,然后再对左右两个子序列分别进行快速排序,直到整个序列有序为止。

function quickSort(arr) {
  if (arr.length <= 1) {
    return arr;
  }

  var pivotIndex = Math.floor(arr.length / 2);
  var pivot = arr.splice(pivotIndex, 1)[0];
  var left = [];
  var right = [];

  for (var i = 0; i < arr.length; i++) {
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }

  return quickSort(left).concat([pivot], quickSort(right));
}
冒泡排序

冒泡排序是一种简单而有效的排序算法。它的原理是每次比较相邻的两个元素,如果顺序不正确就交换它们的位置,直到整个序列有序为止。

function bubbleSort(arr) {
  var len = arr.length;

  for (var i = 0; i < len - 1; i++) {
    for (var j = 0; j < len - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        var temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }

  return arr;
}
插入排序

插入排序是一种简单的排序算法,它的原理是将一个元素插入到已经排好序的序列中,然后调整其它元素的位置,使整个序列有序。

function insertionSort(arr) {
  var len = arr.length;

  for (var i = 1; i < len; i++) {
    var current = arr[i];
    var j = i - 1;

    while (j >= 0 && arr[j] > current) {
      arr[j + 1] = arr[j];
      j--;
    }

    arr[j + 1] = current;
  }

  return arr;
}

以上是JavaScript中常用的三种排序算法, 程序员可以根据自己的需求选择合适的排序方法,使程序更加高效,实现更好的用户体验。