当前位置: 首页 » 网络知识 » 建站知识 » 正文

javascript4种排序

发布时间:2024-12-31 以下文章来源于网友投稿,内容仅供参考!

Javascript是一门高级的编程语言,专注于网页开发。它的应用十分广泛,其中主要涉及到数据的处理。排序是数据处理中十分重要的一部分,Javascript提供了多种排序算法来方便我们对各种数据进行排序。

Javascript中常用的排序算法包括多种,下面我们来介绍四种常用的排序算法:

冒泡排序

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

冒泡排序算法可以说是最简单明了的一种排序,它的排序方式是两两比较,然后交换位置,直到所有的元素都排好序为止。

选择排序

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

选择排序是一种简单选择排序,它的原理是每一次排序对比之后,都选择当前的最小值,逐步将其挪到排好序的部分去。

插入排序

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

插入排序的原理和打扑克牌差不多,它的主要过程是对当前元素与前驱元素进行对比,并将元素插入到正确的位置,这个排序方法在每一次对比中,都需要从后往前进行查找。

快速排序

function quickSort(arr, left, right) {let len = arr.length;let partitionIndex;if (left < right) {partitionIndex = partition(arr, left, right);quickSort(arr, left, partitionIndex - 1);quickSort(arr, partitionIndex + 1, right);}return arr;}function partition(arr, left, right) {let pivot = left;let index = pivot + 1;for (let i = index; i <= right; i++) {if (arr[i] < arr[pivot]) {swap(arr, i, index);index++;}}swap(arr, pivot, index - 1);return index - 1;}function swap(arr, i, j) {let temp = arr[i];arr[i] = arr[j];arr[j] = temp;}

快速排序是一种使用分治思想来进行排序的算法,它通过对数组进行递归的划分,将整个数组分为左、右两部分,直到最后排序结束。

以上四种排序算法都有不同的应用场景,在实际开发中我们可以根据不同的数据结构、数据类型、数据量大小等方面进行选择,来达到最优的排序效果。

  • • oracle 11g bbed

    在数据库管理中,数据的完整性和安全性是最重要的,而oracle 11g bbed(Block Browser and Editor)就是一款专业的数据块查看和

  • • javascript 继承的好处

    JavaScript 继承是一种非常重要的特性,它允许我们创建一种对象,这种对象可以继承其他的对象的属性和方法。JavaScript 继承是很

  • • php nav

    在网页设计中,导航栏是至关重要的元素之一,因为它是用户从一个页面导航到另一个页面的主要方式。而PHP nav则是一种使用PHP代码

  • • macos beta检查正式版

    最近,很多人都对 macOS beta 版进行了试验,并且遇到了各种问题。然而,我们发现在正式版本中,这些问题已经被解决了。因此,我

  • • css增加class属性值

    在CSS中,class属性可以用于为HTML元素添加样式。如果我们想在某个元素上添加一个新的样式,可以使用增加class属性值的方法。这

  • 中国人民银行汇率查询
    银联汇率
    360文库
    腾讯广告推广平台入口
    360移动开放平台
    360广告投放平台
    360广告联盟平台官网
    京东联盟官网登录入口
    微盟官网
    阿里妈妈官网
    首都之窗网站:http://www.beijing.gov.cn
    北京人民政府网站:www.beijing.gov.cn
    国家互联网信息办公室网站:http://www.scio.gov.cn
    全国人社政务服务平台:http://www.12333.gov.cn
    中央人民政府门户网站:www.gov.cn
    沈阳政务服务平台:http://zwfw.shenyang.gov.cn
    广东省公共机构能源资源消费统计工作指南
    黑龙江政务服务平台:http://zwfw.hlj.gov.cn
    公共机构能源资源消费统计系统:http://nyzyxftj.ggj.gov.cn
    国家能源局网站:http://www.nea.gov.cn