首页 > 代码库 > 常用的Array方法
常用的Array方法
//位置交换
Array.prototype.wrap=function(i,j){
var temp;
temp=this[i];
this[i]=this[j];
this[j]=temp;
return this;
}
//数组去重
Array.prototype.unique=function(){
var outArr=[];
for(var i=0;i<this.length;i++){
if(outArr.indexOf(this[i])==-1){
outArr.push(this[i]);
}
}
return outArr;
};
//冒泡排序
Array.prototype.boomp=function(){
var flag=true;
for(var j=0;j<this.length-1&&flag;j++) {
flag = false;
for (var i = 0; i < this.length - j - 1; i++) {
if (this[i] > this[i + 1]) {
this.wrap(i, i + 1);
flag = true;
}
}
}
return this;
};
// 插入排序
Array.prototype.insertp=function(){
for(var i=1;i<this.length;i++) {
var j=i-1;
var temp=this[i];
while(temp<this[j]){
this[j+1]=this[j];
j--;
if(j==-1){
break;
}
}
this[j+1]=temp;
}
return this;
};
//选择排序
Array.prototype.selectp=function(){
var L=this.length;
for(var j=0;j<L-1;j++) {
var m=j;
for (var i = j+1; i < L; i++) {
if (this[m] > this[i]) {
m = i;
if(m!=j){
this.wrap(j,m);
}
}
}
}
return this;
};
//快排(一)
Array.prototype.quickp=function(left,right){
if(left < right) {
var s = this[left];
var i = left;
var j = right + 1;
while(true) {
// 向右找
while(i + 1 < this.length && this[++i] < s) ;
// 向左找
while(j -1 > -1 && this[--j] > s) ;
if(i >= j){
break;
}else{
this.wrap( i, j);
}
}
this[left] = this[j];
this[j] = s;
this.quickp(left, j-1); // 对左边进行递回
this.quickp(j+1, right); // 对右边进行递回
}
return this;
};
常用的Array方法