JS实现数组按升序及降序排列的方法

JS实现数组按升序和降序排列的方法有很多种,下面我将从简单到复杂分享几种方法。

sort()方法

sort()方法是JS的一个数组方法,可以对数组排序。它有一个可选的排序函数,用于规定排序规则。

  • 升序排列:
let arr = [3, 1, 4, 7, 2];
arr.sort((a, b) => a - b);
console.log(arr); // [1, 2, 3, 4, 7]
  • 降序排列:
let arr = [3, 1, 4, 7, 2];
arr.sort((a, b) => b - a);
console.log(arr); // [7, 4, 3, 2, 1]

冒泡排序

冒泡排序是一种常见的排序算法,在实际应用中也常用到。它的实现思路是:比较相邻的两个元素,如果前一个元素比后一个元素大,就交换他们两个的位置。

  • 升序排列:
function bubbleSort(arr) {
  let len = arr.length;
  for (let i = 0; i < len - 1; i++) {
    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]];
      }
    }
  }
  return arr;
}
let arr = [3, 1, 4, 7, 2];
console.log(bubbleSort(arr)); // [1, 2, 3, 4, 7]
  • 降序排列:
function bubbleSort(arr) {
  let len = arr.length;
  for (let i = 0; i < len - 1; i++) {
    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]];
      }
    }
  }
  return arr;
}
let arr = [3, 1, 4, 7, 2];
console.log(bubbleSort(arr)); // [7, 4, 3, 2, 1]

快速排序

快速排序也是常用的一种排序算法,它的思路是:从数组中取出一个数,以这个数为基准,将小于这个数的放到其左边,大于这个数的放到其右边,然后递归处理左右两个子数组。

  • 升序排列:
function quickSort(arr) {
  if (arr.length <= 1) {
    return arr;
  }
  let middleIndex = Math.floor(arr.length / 2);
  let middleValue = arr.splice(middleIndex, 1)[0];
  let leftArr = [];
  let rightArr = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] < middleValue) {
      leftArr.push(arr[i]);
    } else {
      rightArr.push(arr[i]);
    }
  }
  return quickSort(leftArr).concat(middleValue, quickSort(rightArr));
}
let arr = [3, 1, 4, 7, 2];
console.log(quickSort(arr)); // [1, 2, 3, 4, 7]
  • 降序排列:
function quickSort(arr) {
  if (arr.length <= 1) {
    return arr;
  }
  let middleIndex = Math.floor(arr.length / 2);
  let middleValue = arr.splice(middleIndex, 1)[0];
  let leftArr = [];
  let rightArr = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] < middleValue) {
      rightArr.push(arr[i]);
    } else {
      leftArr.push(arr[i]);
    }
  }
  return quickSort(leftArr).concat(middleValue, quickSort(rightArr));
}
let arr = [3, 1, 4, 7, 2];
console.log(quickSort(arr)); // [7, 4, 3, 2, 1]

这些方法中,sort()方法最为简单,但对于一些要求较高的情况可能需要自定义排序函数,而其他两个算法需要自己完成排序算法代码,但效率通常比sort()方法高。在实际开发中应该根据不同的情况选择合适的排序方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现数组按升序及降序排列的方法 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • C语言超详细讲解排序算法上篇

    C语言超详细讲解排序算法上篇 简介 本文将介绍排序算法的基础知识和常见排序算法,包括冒泡排序、选择排序、插入排序。 排序算法是计算机科学中非常重要的算法之一,在实际开发中也经常用到。了解各种排序算法的特点和优缺点,可以帮助我们更好地应对实际问题。 基础知识 在介绍排序算法之前,有一些基础知识需要了解。 1. 时间复杂度 时间复杂度用来衡量一个算法所需要的计算…

    算法与数据结构 2023年5月19日
    00
  • c++入门必学库函数sort的基本用法

    一、sort函数的基本介绍 sort()函数是C++ STL标准库提供的一种排序函数,能够对数组或容器进行排序。可以用于排序基本数据类型、结构体、对象等各种数据类型。其中,数组的排序时简单易行的,容器的排序则更加强大方便。 sort()的函数原型如下: template<class RandomAccessIterator> void sort(…

    算法与数据结构 2023年5月19日
    00
  • JavaScript中数组随机排序的实现详解

    下面是我对于“JavaScript中数组随机排序的实现详解”的完整攻略。 概述 在JavaScript中,数组是一个非常有用的数据类型,而随机排序是在处理数组时非常实用的一种技术。本攻略将为你详细讲解如何实现JavaScript数组的随机排序。 方法一:使用sort()方法 JavaScript中的数组包含一个sort()方法,可以对数组中的元素进行排序。我…

    算法与数据结构 2023年5月19日
    00
  • PHP排序算法系列之桶排序详解

    PHP排序算法系列之桶排序详解 什么是桶排序? 桶排序是一种简单的排序算法,通过将待排序数组元素分别放到对应的桶中,然后在桶中对元素进行排序,最后将所有桶中元素合并得到有序的数组。 桶排序的步骤 创建一个数组作为桶,数组大小为待排序数组中的最大值加1,数组中每个元素初始化为0。 遍历待排序数组,将每个元素放到对应的桶中,即桶数组中下标为待排序元素的值的元素加…

    算法与数据结构 2023年5月19日
    00
  • Trie树_字典树(字符串排序)简介及实现

    接下来我将详细讲解“Trie树_字典树(字符串排序)简介及实现”的完整攻略。 什么是 Trie 树? Trie 树,也叫字典树,是一种树形数据结构,用于处理字符串匹配、排序等问题。它的特点是能够快速地查找特定前缀或后缀的字符串。 Trie 树的基本实现 Trie 树通常是一棵多叉树,其中根节点不包含任何字符,每个子节点包含一个字符,组成一个完整的字符串。下面…

    算法与数据结构 2023年5月19日
    00
  • PHP两种快速排序算法实例

    下面是对PHP两种快速排序算法实例的详细讲解: 1. 快速排序算法介绍 快速排序属于交换排序的一种,是目前应用最广泛的排序算法之一,也是学习算法的重要内容。快速排序算法的基本思想是通过将待排序序列进行划分,并不断递归对子序列进行排序,完成整个序列的排序。 快速排序的基本步骤如下: 选择一个基准值(pivot)。 将待排序数组中小于基准值的元素移动到数组左侧,…

    算法与数据结构 2023年5月19日
    00
  • MySQL order by与group by查询优化实现详解

    MySQL的order by与group by是常用的查询优化手段,本篇攻略将详细讲解order by与group by的使用方法及其优化实现。 1. MySQL Order By MySQL Order By 用于对查询结果进行排序,将查询结果按照指定字段的顺序进行排列 ,默认升序排序,也可以指定为降序排序。 SELECT column1, column2…

    算法与数据结构 2023年5月19日
    00
  • C++实现自顶向下的归并排序算法

    下面是“C++实现自顶向下的归并排序算法”的完整攻略。 归并排序的概念 归并排序是一种分治法排序算法,它将一个大数组分成两个部分,分别对这两个部分进行排序,最后将两个排好序的部分合并起来。归并排序的时间复杂度为O(n log n)。 归并排序的步骤 实现归并排序需要以下三个步骤: 分割 – 将数组分成两个部分,分别对每个部分进行排序。该过程使用二分法来实现。…

    算法与数据结构 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部