js中的排序函数

JavaScript排序函数是一种用于对数组或对象进行排序的方法,在JavaScript中,有多种排序函数可供选择,包括冒泡排序、选择排序、插入排序、快速排序等,这些排序函数可以帮助我们根据特定的条件对数据进行排序,以便更好地处理和分析数据。

冒泡排序

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

js中的排序函数

冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来,这样,每一轮循环结束后,最大的元素就会被交换到数组的末尾,然后再用同样的方法对剩下的元素进行排序,直到整个数组都排好序为止。

以下是冒泡排序的JavaScript实现:

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]) {
        let temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}

选择排序

选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

js中的排序函数

以下是选择排序的JavaScript实现:

function selectionSort(arr) {
  let len = arr.length;
  for (let i = 0; i < len 1; i++) {
    let minIndex = i;
    for (let j = i + 1; j < len; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    if (minIndex !== i) {
      let temp = arr[i];
      arr[i] = arr[minIndex];
      arr[minIndex] = temp;
    }
  }
  return arr;
}

插入排序

插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入,插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

以下是插入排序的JavaScript实现:

js中的排序函数

function insertionSort(arr) {
  let len = arr.length;
  for (let i = 1; i < len; i++) {
    let key = arr[i];
    let j = i 1;
    while (j >= 0 && arr[j] > key) {
      arr[j + 1] = arr[j];
      j--;
    }
    arr[j + 1] = key;
  }
  return arr;
}

快速排序

快速排序是一种高效的排序算法,它的基本思想是:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序的目的,快速排序的最坏情况是时间复杂度为O(n^2),但在实际应用中,平均时间复杂度为O(nlogn)。

以下是快速排序的JavaScript实现:

function quickSort(arr) {
  if (arr.length <= 1) {
    return arr;
  } else {
    let pivotIndex = Math.floor(arr.length / 2);
    let pivot = arr.splice(pivotIndex, 1)[0];
    let left = [];
    let right = [];
    for (let 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中的sort()方法?sort()方法是一个内置的JavaScript方法,用于对数组进行原地排序,默认情况下,sort()方法会按照字符串Unicode码点顺序进行排序,为了实现自定义排序,我们可以提供一个比较函数作为参数,比较函数应该接受两个参数,如果第一个参数应该排在第二个参数之前,则返回一个负数;如果两个参数相等,则返回0;如果第一个参数应该排在第二个参数之后,则返回一个正数,如果我们想要对数字数组进行升序排序,可以这样使用sort()方法:arr.sort((a, b) => a b);

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/328469.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-02-22 09:38
Next 2024-02-22 09:40

相关推荐

  • js怎么获得html内容

    在JavaScript中,获取HTML内容有多种方法,以下是一些常用的方法:1、通过innerHTML属性获取元素的内容innerHTML属性可以获取或设置指定元素的内容,要获取元素的HTML内容,可以将该属性与一个变量关联。var element = document.getElementById(&quot;myEleme……

    2024-03-13
    0218
  • js怎么获取html标签

    JavaScript 提供了多种方法来获取 HTML 标签,这些方法包括通过元素的 ID、类名、标签名等属性来定位和操作 HTML 元素,以下是一些常用的方法:getElementByIddocument.getElementById(id) 方法允许你通过元素的 ID 获取对应的 HTML 标签,在 HTML 中,ID 是唯一的,因……

    2024-02-06
    0159
  • htmljs获取url参数(js获取url的html)

    各位访客大家好!今天小编关注到一个比较有意思的话题,就是关于htmljs获取url参数的问题,于是小编就整理了几个相关介绍的解答,让我们一起看看吧,希望对你有帮助前端使用js如何准确获取当前页面url网址信息js中通过window.location.href和document.location.href、document.URL获取当前浏览器的地址的值,它们的的区别是:\x0d\x0adocument表示的是一个文档对象,window表示的是一个窗口对象,一个窗口下可以有多个文档对象。

    2023-11-24
    0256
  • 百分比算法js _{widget}.js

    百分比算法js _{widget}.js,可以使用以下代码实现:,,``javascript,function percentage(num, total) {, return (num / total) * 100;,},``

    2024-06-08
    0138
  • js采集网页内容

    欢迎进入本站!本篇文章将分享html网页采集,总结了几点有关js采集网页内容的解释说明,让我们继续往下看吧!如何提取一个网页里面的某个DIV的内容1、可以借助采集软件,设置开始采集HTML标签和结束采集HTML标签,然后采集软件就会自动采集这中间div里的内容,然后保存到本地或直接发布到网站数据库。2、新建一个html文件,命名为test.html,用于讲解Jquery如何获得div下的元素。在test.html文件内,使用div标签创建一个模块,在div内,使用p标签,span标签创建测试的内容。

    2023-11-22
    0126
  • js怎么隔行变色html

    在网页设计中,我们经常需要对表格或者列表进行隔行变色,以增加用户的阅读体验,在JavaScript中,我们可以使用DOM操作来实现这个功能,下面我将详细介绍如何使用JavaScript来实现HTML表格的隔行变色。我们需要创建一个HTML表格,在这个例子中,我们将创建一个简单的HTML表格:&lt;table id=&……

    2023-12-28
    0111

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入