- 数组去重方式
//数组去重
function unique(arr){
var ret=[];
for (var i = 0; i < arr.length; i++) {
var tmp=arr[i];
if(ret.indexOf(tmp)===-1){
ret.push(tmp);
}
}
}
Array.prototype.unique1 = function () {
var n = []; //一个新的临时数组
for (var i = 0; i < this.length; i++) //遍历当前数组
{
//如果当前数组的第i已经保存进了临时数组,那么跳过,
//否则把当前项push到临时数组里面
if (n.indexOf(this[i]) == -1) n.push(this[i]);
}
return n;
}
Array.prototype.unique2 = function()
{
var n = {},r=[]; //n为hash表,r为临时数组
for(var i = 0; i < this.length; i++) //遍历当前数组
{
if (!n[this[i]]) //如果hash表中没有当前项
{
n[this[i]] = true; //存入hash表
r.push(this[i]); //把当前数组的当前项push到临时数组里面
}
}
return r;
};
- 快速排序
//快速排序
function quicksort(arr){
var index,left=0,right=arr.length-1;
if(arr.length>1){
index=partition(arr,left,right);
console.log(index);
if(left<index-1){
quickSort(arr,left,index - 1);
}
if(index <right){
quickSort(arr,index,right);
}
}
}
function partition(items,left,right){
var pivot=items[Math.floor((right+left)/2)];
i=left;
j=right;
while(i<=j){
while(items[i]<pivot){
i++;
}
while(items[j]>pivot){
j--;
}
if(i<=j){
swap(items,i,j);
i++;
j--;
}
}
return i;
}
function swap(items,firstIndex,secondIndex){
var temp=items[firstIndex];
items[firstIndex]=items[secondIndex];
items[secondIndex]=temp;
}