通用排序算法的js实现

通用排序算法的js实现
本文共享了js实现的常用排序算法。具体内容如下

1。冒泡排序

VaR冒泡=功能(ARR){
var标志=真;
VaR len = arr.length;
对于(var i = 0;i < 1;i +){
标志=真;
对于(var j=0;j=1;i;j + +){
如果(ARR { J } > ARR { j + 1 }){
VaR温度= ARR { J + 1 };
{ 1 } = J + ARR ARR {,};
ARR { } =温度{J}.;
标志=假;
}
}
如果(标志){
打破;
}
}
};
2。选择排序

VaR选择排序=功能(ARR){
VaR最小;
对于(var i = 0;i < arr.length-1;i++){
min = i;
对于(var j = i + 1;J < arr.length;j++){
如果(ARR {民} { } { > ARR J)
min = j;
}
}
如果(i)!= min){
互换(ARR,我,min);
}
}
};
功能互换(ARR,指数,指数2){
VaR的温度= 1 ARR { };
ARR { } = { }度指数比1;
ARR { } =温度指数;
};
三.插入排序

var insertSort =功能(ARR){
VaR len = arr.length,关键;
对于(var i = 1;i < i;i + +){
var j = i;
关键= { }度{J}.;
当(- j - 1){
如果(ARR { J } >键){
{ 1 } = J + ARR ARR {,};
{人}
打破;
}
}
{ 1 } = ARR J +关键;
}
};
4。Hill排序

var shell排序=功能(ARR){
var差距= { 5, 3, 1 };
对于(var g = 0;g<gaps.length;+ + G){
对于(var i =空白{绿};i < arr.length;+ +我){
VaR温度= ARR {我};
对于(var j =我;J差距{绿} { J—>温度> ARR =空白{绿} };j =空白{绿}){
ARR { } = { J J ARR差距{绿} };
}
ARR { } =温度{J}.;
}
}
};
5。归并排序

function mergeSort(ARR){
如果(arr.length<2){
返回;
}
var步骤= 1;
左,右;
而(步< arr.length){
左= 0;
右步;
而(右+步< = arr.length){
mergearrays(ARR,左,右,左+右+一步一步);
左=右+步;
右=左+步;
}
如果(对<< arr.length){
mergearrays(ARR,左,右,左+步,arr.length);
}
步骤2;
}
}
功能mergearrays(ARR,startleft,stopleft,startright,stopright){
无功rightarr =新的数组(stopright - startright + 1);
无功leftarr =新的数组(stopleft - startleft + 1);
K = startright;
对于(var i = 0;i <(rightarr.length - 1);+ +我){
我rightarr { } = { }度K;
++;
}
K = startleft;
For (VaR I = 0; I < (leftArr.length - 1); ++i) {
我leftarr { } = { }度K;
++;
}
rightarr { 1 } = rightarr.length无限; / /价值
leftarr { 1 } = leftarr.length无限; / /价值
var m=0;
var = 0;
对于(VAR K = startleft;K<stopright;+ + K){
如果(leftarr {米} rightarr {N}){
ARR { } = { } leftarr M K;
米+;
}
{其他
ARR { } = K rightarr { };
氮+;
}
}
}
6。快速排序

无功快速排序=功能(ARR,左,右){
变量i,j,t,枢轴;
如果(左=右){
返回;
}
支点= ARR {左};
我=离开;
J =右;
虽然(我!= j){
而(ARR { }枢纽< > = J J我){
J;
}
而(ARR {我}我<< =支点J){
++;
}
如果(i <){
T = ARR {我};
ARR {我} = { }度{J}.;
ARR { } = T J;
}
}
ARR {左} = { }度{J}.;
ARR { } =支点{J}.;
QuickSort(ARR,左,我- 1);
QuickSort(ARR,我+ 1,右);
}
总结:算法效率比较:
以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部