📜  js 排序 - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:02.283000             🧑  作者: Mango

JS排序 - Javascript

在编程中,排序是非常重要的操作,因为它可以让我们对数据进行更好的组织和查找。JavaScript是一种非常灵活的编程语言,它提供了多种排序算法,使得我们能够快速对数据进行排序。本文将介绍一些基本的排序算法,并提供使用JavaScript实现排序的示例代码。

排序算法
冒泡排序

冒泡排序是一种基本的排序算法,它的主要思想是重复地遍历要排序的数组,每次比较相邻的两个元素,如果它们的顺序不正确就交换它们。该算法的时间复杂度为O(n²)。

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;
}
选择排序

选择排序是一种简单的排序算法,它的主要思想是在每次遍历中选出最小(或最大)的元素,将它与当前位置的元素交换。该算法的时间复杂度为O(n²)。

function selectionSort(arr) {
  var len = arr.length;
  for (var i = 0; i < len - 1; i++) {
    var minIndex = i;
    for (var j = i + 1; j < len; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    var temp = arr[i];
    arr[i] = arr[minIndex];
    arr[minIndex] = temp;
  }
  return arr;
}
插入排序

插入排序是一种简单而有效的排序算法,它的主要思想是在一个已经排好序的子序列中,将新元素插入到正确的位置。该算法的时间复杂度为O(n²)。

function insertionSort(arr) {
  var len = arr.length;
  for (var i = 1; i < len; i++) {
    var j = i;
    var temp = arr[i];
    while (j > 0 && arr[j-1] > temp) {
      arr[j] = arr[j-1];
      j--;
    }
    arr[j] = temp;
  }
  return arr;
}
快速排序

快速排序是一种常用的排序算法,它的主要思想是将一个数组分成两个子数组,其中一个子数组的所有元素都比另一个子数组小,然后再递归地对这两个子数组进行排序。该算法的时间复杂度为O(nlogn)。

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));
}
结语

本文简要介绍了几种常见的JavaScript排序算法,并提供了相应的代码示例。在实际应用中,我们需要根据实际场景选择不同的排序算法以达到最好的效果。