首页 技术 正文
技术 2022年11月9日
0 收藏 782 点赞 3,304 浏览 1133 个字

  在我们JS语法当中,数据类型中的复杂数据类型,有一项我们常用的数组数据类型,其中存储的数据有时是乱序的,需要排序,我们有多种方法,最简单的肯定是 :变量.sort(fonction(a,b){a>b})这种方法。然而我这里讲到的是另外两种手写算法来排序的。

  冒泡排序,是通过for每次循环,来找到一个最大值,多次循环来确定数组排序,咋们来看具体代码实现,在讲解 JS排序算法–冒泡排序和选择排序

  这里咋们看到是分为外层循环与内层循环的,外层循环是为了执行循环次数,内层循环是为了每一次执行的数据与其他数据的对比比较循环。通过索引下标来控制循环的最大值,也就是arr.length,内层循环中嵌套一层if判断语句,看两个数据之间的大小,如果前一个比后一个大,那么就行数据互换操作,这里需要注意的是,需要添加一个变量来进行中间互换,否则数据是互换不了的。

  另外则是这里的代码是进行了一定优化的,加快程序的执行效率,减少执行次数,

  外层循环如果有n个单元参加排序,那么只需要循环n-1次即可,而最后一个单元时是不需要进行比较循环排序的,其他的排序好,那么这个就自动排序好的,所以循环最大值是(arr.length-1) -1;

  内层循环是上一次参与循环,已经决定出来的最大数值,不用参与下一次循环, 第一次排序,少0个单元参与,第二次排序,少1个单元参与,第三次排序,少2个单元参与……..通过外层循环变量,定义是从 0 开始的循环数值,每次内层循环,次数,再减去 外层循环变量 的数值,也就是(arr.length-1) -1 – j;

  选择排序,也就是从起始位置寻找最小值的索引下标。如果最终存储的索引下标不是最初设定的起始位置,那就交互存储数据

JS排序算法–冒泡排序和选择排序

    这里代码执行的原理顺序是,外层循环:实现循环次数,是数组单元个数-1;内层循环:每次循环,将本次循环找出来的最小值,与起始位置进行数值交换,先默认起始位置的数值为最小值,存储起始位置的索引值,之后从起始位置的下一个位置开始循环,生成之后的所有索引下标,如果之后位置上的数值,小于存储的索引位置的数值,就存储这个数值的索引,循环结束,变量中存储本次内层循环选择出的最小值的索引下标,进行比较判断,如果这个索引值,不是起始索引值,就交换两个索引值对应的数据。   而程序优化的部分则是和冒泡排序相对相同,外层优化:之前比较出的数值,不参与下一次的比较,内层优化:从起始位置的下一个位置开始循环。    最后提到的是,这两种方法其实在实际开发当中用处并不大,但是对于编程人员的思维逻辑锻炼还是有一定益处的,谢谢大家!

                                                                                             

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,490
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,291