博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组排序【冒泡排序、快速排序、选择排序】
阅读量:6242 次
发布时间:2019-06-22

本文共 2259 字,大约阅读时间需要 7 分钟。

在工作中遇到了排序问题,随后就总了了几种排序方式【冒泡排序、快速排序、选择排序】

【冒泡排序】

  原理:比较相邻的两个元素,将值大的交换至右侧

// 冒泡排序:比较相邻的两个元素,将值大的交换至右边        var arr = [1,20,5,62,8,2,45];        function bubbleSort(obj){            for(var i = 0; i < obj.length; i++){                for(var j = 0; j < obj.length -i -1; j++){                    if(obj[j] > obj[j+1] ){                        var temp = obj[j];                        obj[j] = obj[j+1];                        obj[j+1] = temp;                    }                }            }            return obj;        }        document.write("冒泡排序" + bubbleSort(arr) + "
");

 

【快速排序】

  原理:1、选择数组的一个中间值,分成左右两个数组,

     2、用中间值与数组的值进行比较,比中间值小的放到左数组,比中间值大的放到右数组

       3、最后将左数组、中间值与右数组连接起来

//快速排序:选择中间值,分左右两个数组,左数组的都比右数组的小        var arr = [1,20,5,62,8,2,45];        function quickSort(arr){            if(arr.length <= 1){                return arr;            }            var middleIndex = Math.floor(arr.length / 2);            var middleVal = arr.splice(middleIndex, 1)[0];            var left = [], right = [];            for(var i = 0; i < arr.length; i++){                if(arr[i] < middleVal){                    left.push(arr[i]);                }else{                    right.push(arr[i]);                }            }            return quickSort(left).concat([middleVal], quickSort(right))        }        document.write("快速排序:" + quickSort(arr) + "
");

 

【选择排序】

  原理:把未选择中的最小值存放在起始位置,然后在未排序中找到最小的值,放在已排序的最后

//选择排序:把未选择中的最小值存放在起始位置,然后在未排序中找到最小的值,放在已排序的最后        var selectSortArr = [1,20,5,62,8,2,45];        function selectSort(arr){            if(arr.length <= 1){                return arr;            }            var minIndex, temp;            console.log(arr)            for(var i = 0; i< arr.length; i++){                minIndex = i;                for(var j = i + 1; j < arr.length; j++){                    if(arr[j] < arr[minIndex]){                        minIndex = j;                    }                }                temp = arr[i];                arr[i] = arr[minIndex];                arr[minIndex] = temp;                console.log(arr)            }            return arr;        }        document.write("选择排序:" + selectSort(selectSortArr));

 

以后学会了其他的排序算法,会继续补充的。

 

-THE END-

转载于:https://www.cnblogs.com/menggirl23/p/10243474.html

你可能感兴趣的文章
打包常见问题
查看>>
javascript解析json
查看>>
在Ubuntu下编译WebKit源码
查看>>
amazeui 移动开发
查看>>
python2 与python3中最大的区别(编码问题bytes&str
查看>>
HDU 2243 AC自动机+DP+矩阵
查看>>
什么叫脱字符合^
查看>>
git版本控制管理实践-2
查看>>
HTTP基础知识(三)
查看>>
如何有效释放DB2所占的磁盘空间?
查看>>
三分法
查看>>
第 8 章 容器网络 - 058 - flannel 概述
查看>>
Mongodb删除collection
查看>>
ArcEngine应用程序中无法实现TOC图层多选
查看>>
Java-笔记9-复习
查看>>
python---基本数据结构
查看>>
Windows下JDK,Tomcat,Eclipse安装配置
查看>>
vue的checkbox或多选的select的代码例子
查看>>
es6-Set和Map数据结构
查看>>
使用ffmpeg将录屏文件转换成gif
查看>>