问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JavaScript 常见的三种数组排序方式

发布网友 发布时间:2024-09-29 23:31

我来回答

1个回答

热心网友 时间:2024-10-04 01:52

冒泡排序的英文名是 Bubble Sort,它是一种简单直观的排序算法。简单来说,它会重复走访过要排序的数列,一次比较两个数,如果他们的顺序错误就会将他们交换过来,直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。冒泡排序算法思路:首先我们需要做一个内层循环来比较每对相邻元素的大小,如果前面大于后面,就让他们交换位置,我们要让小的数在前面,大的数在后面。当内层循环结束时,在数组最后一位的元素,就一定是这个数组中最大的元素了。这时候除了最后一个元素不用再动以外(所以内层循环每循环一次就可以少循环一次),我们还要再来确定这个数组中第二大的元素,第三大的元素,以此类推。因此我们还需要一层外层循环。如果这个数组有 n 个元素我们就要确定 n - 1 个元素的位置,所以外层循环需要循环的次数就是 n - 1 次。实现方式可能有很多种,这只是我个人的想法。

选择排序英文叫法是 Selection sort,这也是一种简单直观的排序方法。这种排序首先会在未排序的数组中找到最小或者最大的元素,存放在排序数组的起始位置。然后再从未排序的数列中去找到这个数组中第二大或这第二小的数放在已排序的数之后,以此类推,不断重复直到所有元素排列完毕。算法思路(以按递增顺序排列为例):我们需要内层循环找出未排序数列中的最小值,循环后找到未排序数列中的最小元素时记录最小的那个元素在数组中的索引值。用索引获得最小值的位置后把它放在数组的第一位。每经过一次内层循环,我们就能确定一个未排序数组中最小值的位置。在确定倒数第二个数的位置时,最后一个数的位置也自然而然地被确定了。因此数组中有 n 个元素我们就需要进行 n - 1 次内层循环,我们就用用外层循环来保持内层循环的重复进行。

插入排序英文称为 Insertion sort,插入排序也被叫做直接插入排序。它的基本思想是将一个未排序的元素插入到已经排序好的数组中,从而使得已排序的数组增加一个元素,通过插入不断完善已排序数组的过程,就是排序整个数组的过程。算法思路(以按递增顺序排列为例):因为数组中第一个元素前面没有元素可以进行比较,所以我们从第二个元素开始比较,用 current 变量来进行存储当前要和别人比较的元素,用 preIndex变量 来方便我们去找当前准备插入元素之前的元素。内层循环就是按顺序比较插入元素和之前元素的大小,来确定插入元素的位置。 preIndex 每比较一次就自减1 ,让准备插入元素和它之前的所有已排序元素都比较一遍。每当待插入元素比前一个数小了,前面的元素就往右挪一个位置,直到前一个数小于待插入数,跳出判断,待插入元素放在前一次判断挪动元素留出的空位上。由于我们提前用 current 保存了要插入的元素,所以要插入的元素不会因为前面的元素覆盖而丢失。每循环一次内层循环,我们就可以确定一个元素的插入位置。但由于我们内层循环是从第二个元素开始的(也就是索引为 1 的元素),因此如果有 n 个元素,我们就需要 n - 1 次内层循环。内存循环我们用外层循环来实现,外层循环就这么被定义完成了。

总结:

选择排序(一种不稳定的排序方法)优点:移动数据的次数已知(n-1次);缺点:比较次数多。

冒泡排序优点:稳定;缺点:慢,每次只能移动相邻两个数据。

插入排序优点:稳定,快;缺点:比较次数不一定,比较次数越少,插入点后的数据移动越多,特别是当数据总量庞大的时候,但用链表可以解决这个问题。

目录:
三种简单的排序方法js实现

本文将介绍三种简单的排序方法在JavaScript中的实现,包括冒泡排序、选择排序和插入排序。首先,冒泡排序虽然简单,但效率较低,它通过反复比较并交换相邻元素的位置,将最大(或最小)数据逐步“冒”至数组顶端。例如,对降序数组5, 4, 3, 2, 1进行升序排序,其过程如图所示。相比之下,选择排序则是每...

javascriptsort数组排序方法和自我实现排序方法小结

1. 冒泡排序:这是一种简单的排序算法,通过重复地遍历待排序序列,比较每对相邻的项,并将顺序错误的项目交换过来。2. 选择排序:这种算法每次从未排序的部分选择最小的元素,存放到已排序序列的末尾。3. 插入排序:插入排序将数组分为已排序和未排序两部分,通过比较和移动元素,将未排序的元素插入到...

JavaScript 常见的三种数组排序方式

插入排序英文称为 Insertion sort,插入排序也被叫做直接插入排序。它的基本思想是将一个未排序的元素插入到已经排序好的数组中,从而使得已排序的数组增加一个元素,通过插入不断完善已排序数组的过程,就是排序整个数组的过程。算法思路(以按递增顺序排列为例):因为数组中第一个元素前面没有元素可以进...

JavaScript按字母顺序排序对象数组

1. 使用if条件语句结合sort()方法 2. 使用localeCompare()函数与sort()方法 3. 使用Collator()对象与sort()方法 sort()方法会修改原始数组。sort()方法在多个浏览器中均有良好兼容性,包括Chrome、IE、Edge、Firefox、Safari和Opera。以下为排序数组示例:按升序排序:按降序排序:使用if条件语句结合sort...

【JavaScript】JS常见排序方法

进阶算法如归并排序,它采用分治法,将数组不断对半划分,然后合并有序部分。虽然抽象,但其时间复杂度为O(n*logN),在分治过程中,每次划分和合并的时间分别对应为O(n)和O(logN),整体上更为高效。快速排序是另一种常用排序方式,chrome的数组sort方法就基于快速排序,通过分区操作和递归,分区时间复杂...

Javascript中数组的常用方法有哪些?

reverse()颠倒数组中元素的顺序。shift()删除并返回数组的第一个元素 slice()从某个已有的数组返回选定的元素 sort()对数组的元素进行排序 splice()删除元素,并向数组添加新元素。toSource()返回该对象的源代码 toString()把数组转换为字符串,并返回结果。toLocaleString()把数组转换为本地数组,并返回...

javascript Array (数组)方法

JavaScript中的数组方法提供了丰富的功能,以下主要介绍数组的转换、添加、删除、排序、合并、遍历、筛选与映射等方法。数组转换方面,可以使用join方法将数组转换为字符串,通过传递不同的参数实现不同的分隔符。数组的添加与删除,可以使用push方法在数组尾部添加元素,unshift方法在数组头部添加元素,pop方法...

数组排序是什么

JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。sort()方法用于对数组的元素进行排序。语法如下:arrayObject.sort(sortbyfun),返回值为对数组的引用。请注意,数组在原数组上进行排序,不生成副本。常见的排序算法 1、冒泡排序 最简单的一种排序算法。

JavaScript实现十大排序算法(图文详解)

归并排序,利用分治思想,将大的数组,分解为小数组,直至单个元素。然后,使用选择排序的方式,对分拆的小数组,进行回溯,并有序合并,直至合并为一个大的数组。效果图小数组合并的过程解法functionmergeSort(arr){returnsort(arr,0,arr.length-1);//注意右区间是arr.length-1//sort方法,进行递归functionsort(arr,left...

数组函数有哪些

2. 数组查找函数:这些函数用于在数组中查找特定的元素或信息。例如,在Python中,可以使用index方法来查找特定元素在数组中的位置。还有其他高级的查找函数如二分查找、线性查找等,它们在处理大型数据集时能够显著提高效率。3. 数组排序函数:排序函数用于对数组中的元素进行排序。常见的排序算法包括冒泡排...

java数组初始化的三种方式 php数组定义的三种方式 c语言数组初始化的三种方式 数组的声明方式有三种 java定义数组的三种类型 遍历数组的三种方法 创建数组的几种方式 java数组赋值方式 数组的定义方式
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电源时提供电源的装置,是把什么能转换成什么能 哪些食物减肥效果好清肠食物有哪些 降脂清肠的食物有哪些 请问这个电脑配置很好么 ...床上做仰卧起坐都能做50个左右,最近买了个仰卧板做了之后在床上一... 过夜姜茶能喝吗 过夜生姜茶能喝吗 能喝过夜姜茶吗 有懂猫的大神吗,帮我看看我家新买的美短起司 怎么样 拍的不是很清楚... 分手后有必要把原因说清楚吗? Windows 7 破解登录密码 有价证券指的是什么意思 有价证券资料 喂奶时采取什么姿势可以防止新生儿呛奶呢? 新生儿怎么交替喂奶 新生儿怎么抱着喂奶 产妇应该如何正确地给小孩喂奶呢? 如何换塑钢窗滑轮 塑钢窗滑轮怎么换 电网实时动态监测技术及应用图书目录 电网农改无偿在我家主屋墙上定点布线,我是否可以要求供电所移换位置_百... ...昨晚做了个梦,梦见我们去探险,去到一个洞里面,里面有水,然后我突... 昨晚梦见在老家房间 我被一条大蟒蛇咬了脖子后面 还有一个洞,好像出... 《率土之滨》平民玩家怎么玩新手到大神避雷攻略分享 ...想吐.然后就不断默念.观音的佛号求救。五分钟后.就清..._百度... ...因世人无意间的亵渎而降下惩罚?看到别人... 推荐几部适合提高英语口语的电影,要有中英字幕的 有哪些 适合学英语的电影 要有中英文字幕 有没有有意义英文电影,搞笑的幽默的有哲理的有教育意义的都行,最... 好看的英文原声电影,要有英语字幕。 会计中什么是加权平均法 ...需要专科毕业证原件,如果自考办把我的专科毕业证弄丢了怎么办... 【JavaScript】JS常见排序方法 08年奥运火炬传递起点在哪?和终点经过多少个站先后分别经过哪些地方 孕早期可以喝酵素吗 家里电脑一直是连的无线网 今天突然连不上了。不知道是怎么回事。请_百... 为什么电脑重启后会打印上一次的文件? ...i don't want to miss a thing 谁能把歌词翻译中文 I Don't Want To Miss A Thing 是哪个电影的插曲? 在华举办国际会议外宾食宿怎么办 西电的教务处网站怎么上不去 家里灯光怎么选 四轮低速电轿仪表不显电量光标换新后还是不显怎么修? 村官期满考上事业单位还能考国考吗 孕妇梦见一条大黄狗下面还躲着三只小黄狗。很小很小 梦见生黄狗的预兆 请问支付宝里面的零钱被其他平台扣贷款的钱已经扣了800的要怎么处理才... 孩子发烧时,正确的物理降温方法有哪些? 如何让管理员身份打开文件 新天天象棋楚汉争霸91关怎么过?求截图 梦见已经死了的人跟自己说你老公己经烦你想跟你离婚是什么意思! 宝宝做恶梦的原因,如何应对呢?