×

数组是如何排序的呢

作者:andy0012018.09.13来源:Web前端之家浏览:2023评论:0
关键词:数组排序

数组是如何排序的呢,分享几种,一起来学习下吧!

快速排序

在数组中拿出中间一项,跟剩下数组的每一项进行比较,比中间项小放入左边的数组,比中间项大放入右边的数组。进行一轮比较后,递归把左右的数组内部进行相同方法比较,最后把首次比较的数组拼接起来。

let arr = [3,0, 6, 5,2, 1, 9];
        function mySort(arr) {
            if(arr.length<=1){//数组只有一项不用进行比较,返回当前的数组
                return arr;
            }
            let ind = Math.floor(arr.length / 2);//取中间的索引值
            let mid = arr[ind];//数组中间那项
            arr.splice(ind, 1);//拿出中间项后的数组
            let left = [];
            let right = [];
            arr.map((item) => {
                if (item > mid) {
                    right.push(item)
                } else {
                    left.push(item)
                }
            })
            return mySort(left).concat(mid, mySort(right))
            //左右的数组内用相同方法进行排序,最好把这几项拼接在一起
        }
        console.log(mySort(arr))

冒泡排序

比较相邻项的值,如果前者比后者大,交换顺序;
进行一轮比较后,最后一个值为最大的值;
进行下一轮比较,比上次少比较一项;
以此类推,比较剩下最后一项的时候,比较结束;

let arr = [3, 0, 6, 5, 2, 1, 9];
        function mySort(arr) {
            for (var i = 0; i < arr.length - 1; i++) {
                for (var k = 0; k < arr.length - i - 1; k++) {
                    var temp = null;
                    if (arr[k] > arr[k + 1]) {
                        temp = arr[k + 1];
                        arr[k + 1] = arr[k];
                        arr[k] = temp;
                    }
                }
            }
            return arr;
        }
        console.log(mySort(arr))

温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
http://jiangweishan.com/article/paixu234234234.html

网友评论文明上网理性发言 已有0人参与

发表评论:

最新留言

  • www.micai18.com

    写的很详细...

  • 子午物联网

    这个博客,由衷的喜欢...

  • 访客

    文章不错,非常喜欢...

  • cnwebe

    新媒体运营交换友情链接https://www.cnwebe.com换吗...

  • admin

    请加上链接...

  • admin

    已加上...

  • 物联网应用

    交换个链接如何?物联网应用www.ziwuiot.com...

  • zzzmh

    你好自己写的个人技术博客https://zzzmh.cn麻烦友链申请...

首页|JavaScript|HTML|HTML4|HTML5|CSS3|开发工具|性能优化|移动开发|前端教程|性能优化|开发工具|酷站欣赏|UI设计|前端教程

Copyright © 2019 Web前端之家(www.jiangweishan.com) 版权所有 All Rights Reserved.
粤ICP备12067512号-1

Copyright Your WebSite.Some Rights Reserved.

Powered By Z-BlogPHP 1.5.2 Zero