手机版

js实现常用排序算法

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

本文为大家分享了射流研究…实现常用排序算法,具体内容如下

1.冒泡排序

var bubbleSort=function(arr){ var flag=true;var len=arr . length for(var I=0;I len-1;I){ flag=true;for(var j=0;j-len-1-I;j){ if(arr[j]arr[j 1]){ var temp=arr[j 1];arr[j 1]=arr[j];arr[j]=温度;flag=false } } if(flag){ break;} }};2.选择排序

var select sort=function(arr){ var min;for(var I=0;我被捕了。长度-1;I){ min=I;对于(var j=I ^ 1;j arr . length j){ if(arr[min]arr[j]){ min=j;} } if (i!=min) { swap(arr,I,min);} }};函数交换(arr,index1,index 2){ var temp=arr[index 1];arr[索引1]=arr[索引2];arr[索引2]=temp;};3.插入排序

var insertSort=function(arr){ var len=arr。长度,key for(var I=1;我透镜;I){ var j=I;key=arr[j];while (- j -1) { if (arr[j]键){ arr[j 1]=arr[j];} else { break } } arr[j 1]=key;}};4.希尔排序

var shellSort=function(arr){ var gap=[5,3,1];for(var g=0;g间隙。长度;g){ for(var I=gap[g];一、长度;I){ var temp=arr[I];for(var j=I;j=gap[g]arr[j-gap[g]]temp;j-=gap[g]){ arr[j]=arr[j-gap[g]];} arr[j]=temp;} }};5.归并排序

函数合并排序(arr){ if(arr。长度2){ return;} var step=1;定义变量左,右;而(步骤arr。长度){ left=0;right=stepwhile(右步长=arr.length) { mergeArrays(arr,左,左步长,右,右步长);左=右台阶;右侧=左侧台阶;}如果(右arr.length) { mergeArrays(arr,左,左步进,右啊,啊。长度);} step *=2;} }函数合并数组(arr,startLeft,stopLeft,startRight,stopRight) { var rightArr=新数组(stop right-start right 1);var leftArr=新数组(员工eft-开始左1);k=startrightFOr(var I=0;我(对啊。长度-1);I){右arr[I]=arr[k];k;} k=startleftFOr(var I=0;我(LeftArr。长度-1);I){ LeftArr[I]=Arr[k];k;}右arr[右arr。长度-1]=无穷大;//哨兵值leftArr[leftArr.length - 1]=无穷大;//哨兵值var m=0;var n=0;for(var k=startLeft;k stopRightk){ if(左arr[m]=右arr[n]){ arr[k]=左arr[m];m;} else { arr[k]=right arr[n];n;} }} 6.快速排序

var快速排序=函数(arr,左,右){ var i,j,t,pivotif(左=右){ return } pivot=arr[left];i=左侧;j=右;而(我!=j){ while(arr[j]=pivot I j){ j-;} while(arr[I]=pivot I j){ I;} if(I j){ t=arr[I];arr[I]=arr[j];arr[j]=t;} } arr[left]=arr[j];arr[j]=枢轴;快速排序(arr,左侧,I-1);快速排序(arr,i 1,右);} 总结:算法效率比较:

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

版权声明:js实现常用排序算法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。