数组原形添加几个排序方法,缩进了下,方便大家看
<script>
var arr=[10,9,8,7,6,5,4,3,2,1,34,234,12,4,12,312];
//快速排序
Array.prototype.qSort=function(){
if(this.length<=0){
return [];
}
var cIndex=Math.floor(this.length/2);
var c=this.splice(cIndex,1);
var left=[];
var right=[];
for(var i=0;i<this.length;i++){
if(this[i]<c[0]){
left.push(this[i]);
}else{
right.push(this[i]);
}
}
return left.qSort().concat(c,right.qSort());
};
//冒泡排序
Array.prototype.bSort=function(){
for(var i=0;i<this.length;i++){
for(j=0;j<this.length;j++){
if(this[j+1]<this[j]){
var car;
car=this[j];
this[j]=this[j+1];
this[j+1]=car;
}
}
}
return this;
};
//选择排序
Array.prototype.sSort=function(){
for(var i=0;i<this.length;i++){
var n=this.findMin(i);
var car;
car=this[n];
this[n]=this[i];
this[i]=car;
}
return this;
};
Array.prototype.findMin=function(item){
var iMin=this[item];
for(var i=item+1;i<this.length;i++){
if(iMin>this[i]){
iMin=this[i];
item=i;
}
}
return item;
};
//归并排序
Array.prototype.mSort=function(s,e){
if(s>e){
return [];
}else if(s==e){
return [this[s]];
}
var c=Math.floor((s+e)/2);
var left=this.mSort(s,c);
var right=this.mSort(c+1,e);
var result=[];
while(left.length>0||right>0){
if(left[0]<right[0]){
result.push(left.shift());
}else{
result.push(right.shift());
}
if(left.length==0){
result=result.concat(right);
break;
}else if(right.length==0){
result=result.concat(left);
break;
}
}
return result;
};
document.write(arr.bSort());
</script>
若需转载,请注明出处,谢谢合作!