当前位置: 首页 > 编程笔记 >

通过实例解析JavaScript常用排序算法

宗政海
2023-03-14
本文向大家介绍通过实例解析JavaScript常用排序算法,包括了通过实例解析JavaScript常用排序算法的使用技巧和注意事项,需要的朋友参考一下

冒泡排序

冒泡排序是我们在编程算法中,算是比较常用的排序算法之一,在学习阶段,也是最需要接触理解的算法,所以我们放在第一个来学习。

算法介绍:

比较相邻的两个元素,如果前一个比后一个大,则交换位置。第一轮把最大的元素放到了最后面。由于每次排序最后一个都是最大的,所以之后按照步骤1排序最后一个元素不用比较。

冒泡算法改进:

设置一个标志,如果这一趟发生了交换,则为true。否则为false。如果这一趟没有发生交换,则说明排序已经完成。代码如下:

假如数组长度是20,如果只有前十位是无序排列的,后十位是有序且都大于前十位,所以第一趟遍历排序的时候发生交换的位置必定小于10,且该位置之后的必定有序,我们只需要排序好该位置之前的就可以,因此我们要来标记这个位置就可以了,即可以记录每次扫描中最后一次交换的位置,下次扫描的时候只要扫描到上次的最后交换位置就行了,因为后面的都是已经排好序的,无需再比较,代码如下:

每一次循环从两头出发算出最大和最小值,代码如下:

在代码3的基础上记录每次扫描最后一次交换的位置,下次扫描的时候只要扫描到上次的最后交换位置就行,同代码2,代码如下:

冒泡排序动图演示:

快速排序

算法介绍:

快速排序是对冒泡排序的一种改进,第一趟排序时将数据分成两部分,一部分比另一部分的所有数据都要小。然后递归调用,在两边都实行快速排序。

快速排序动图演示:

选择排序

算法介绍:

选择排序就是从一个未知数据空间里,选取之最放到一个新的空间

选择排序动图演示:

插入排序

算法介绍:

从第一个默认被排好序的元素开始取出下一个元素,在已经排序的元素序列中从后向前扫描如果已排序的元素大于取出的元素,则将其分别向后移动一位直到找到已排序的元素中小于或等于取出的元素,将取出的元素放到它的后一位重复步骤2

插入排序算法改进-二分法插入排序:

插入排序法动图演示:

以上就是4中比较基础的排序方法了,JavaScript的排序算法还有很多,这是我们4种最常见也是最基本的算法,掌握理解好,在面试和开发中也能从容应对了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍javascript常用经典算法实例详解,包括了javascript常用经典算法实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript常用算法。分享给大家供大家参考,具体如下: 入门级算法-线性查找-时间复杂度O(n)--相当于算法界中的HelloWorld 二分查找(又称折半查找) - 适用于已排好序的线性结构 - 时间复杂度O(logN) 冒泡排序

  • 本文向大家介绍python实现bucket排序算法实例分析,包括了python实现bucket排序算法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现bucket排序算法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 本文向大家介绍Python实现的几个常用排序算法实例,包括了Python实现的几个常用排序算法实例的使用技巧和注意事项,需要的朋友参考一下 前段时间为准备百度面试恶补的东西,虽然最后还是被刷了,还是把那几天的“战利品”放点上来,算法一直是自己比较薄弱的地方,以后还要更加努力啊。 下面用Python实现了几个常用的排序,如快速排序,选择排序,以及二路并归排序等等。 运行结果如下:

  • 本文向大家介绍PHP快速排序算法实例分析,包括了PHP快速排序算法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP快速排序算法。分享给大家供大家参考,具体如下: 快速排序:在无序的数组$data中,选择任意一个值作为对比值,定义i为头部检索索引,j为尾部检索索引, 算法步骤: (1)初始化对比值$value=$data[0],$i=1,$j=count($data)-1 (2

  • 本文向大家介绍python插入排序算法实例分析,包括了python插入排序算法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python插入排序算法。分享给大家供大家参考。具体如下: 另外一个版本: 希望本文所述对大家的Python程序设计有所帮助。

  • 本文向大家介绍Java数组常用排序算法实例小结,包括了Java数组常用排序算法实例小结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java数组常用排序算法。分享给大家供大家参考,具体如下: 1、冒泡排序法 SortArray_01.java 运行结果: 2、数组递增排序 SortArray_02.java 运行结果: 3、快速排序法 SortArray_03.java 运行结果: 4、