手机版

JS实现的冒泡排序、快速排序和插入排序算法示例

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

本文描述了JS实现的冒泡排序、快速排序和插入排序算法。分享给大家参考,如下:

一、气泡排序

大致分为两步:

1.依次比较两个相邻的数字。如果前者比后者大,改变位置

2.重复第一步,直到所有数字都按顺序排列

函数bubbleSort(arr){ for(var I=1;长度;I){ for(var j=0;jarr . length-I;j){ if(arr[j]arr[j 1]){ arr[j]=[arr[j 1],arr[j 1]=arr[j]][0];} } }返回arr}二、快速排序

大致分为三步:

1.找到基准(通常基于中期)。2.遍历数组。比基准小的放在左边,比基准大的放在右边3。递归的

函数quickSort(arr){ //如果数组=1,直接返回if(arr . length=1){ return arr;} var Pivotindex=Math . floor(arr . length/2);//找到基准并将其从原始数组中删除。var pivot=arr.split (pivot index,1)[0];//定义左右数组var left=[],right=[];//小于基准的放在左边,大于基准的放在右边(var I=0;长度;I){ if(arr[I]=pivot){ left . push(arr[I]);} else { right . push(arr[I]);} }//递归返回快速排序(左)。concat(透视,快速排序(右));}第三,插入排序(对少量元素有效)

原理:和整理扑克牌一样,开始的时候,我们的左手是空的,桌上的牌面是朝下的。然后,我们一次从桌子上拿一张卡片,正确地插入左手

位置。为了找到一张牌的正确位置,我们从右到左将它与手中的每张牌进行比较,如图2-1所示。左手握着的牌总是井井有条,原来是桌上那堆牌中最上面的牌。

手上的牌是有序系列,桌上的牌是无序系列。

函数insert short(arr){//从第二个数字开始插入(var I=1;长度;I ){ //判断目标元素是否小于前一个元素if(arr[I]arr[I-1]){ var current=arr[I];var j=I-1;//从有序序列中从后向前比较。如果目标元素小于与之比较的当前元素,则当前元素的位置将向后移动一,而(j=0 current tar[j]){ arr[j 1]=arr[j];j-;}//插入arr[j 1]=当前;} }返回arr}插入另一种排序方式(个人认为,这仍然有效)

函数insertSort(arr) { for(让I=1;长度;I){ if(arr[I]arr[0]){ arr . unshift(arr . splice(I,1)[0]);}else { for(让j=I-1;j=0;j-){ if(arr[I]arr[j]){ let current=arr . splice(I,1)[0];arr.splice(j 1,0,电流);打破;} } } }返回arr}感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun来测试上述代码的运行效果。

PS:这里推荐一个排序的演示工具,供大家参考:

在线动画演示插入/选择/冒泡/合并/希尔/快速排序过程工具:http://tools.jb51.net/aideddesign/paixu_ys

更多对JavaScript相关内容感兴趣的读者可以查看本网站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》和0103010

希望本文对JavaScript编程有所帮助。

版权声明:JS实现的冒泡排序、快速排序和插入排序算法示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。