判断整个数组A是不是数组B的子集
var A=[11,22,33,56,16,18,66];
var B=[33,11,88,22,33,56,16,44,99,18,66];
顺带一个排序方法
快速排序
var A=[11,22,33,56,16,18,66];
var B=[33,11,88,22,33,56,16,44,99,18,66];
function quickSort(arr) {
if (arr.length ==0){
return [];
}
var pivot = arr[0];
var left = [];
var right = [];
for (var i = 1; i < arr.length; i++){
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat(pivot,quickSort(right));
};
var arr1 = quickSort(B);
var arr2 = quickSort(A);
//判断
function isSubset(arr1,arr2){
var i=0,j=0;
if(arr1.length<arr2.length) return false;
while(i<arr2.length && j<arr1.length){
if(arr1[j] < arr2[i]){
j++;
}else if( arr1[j] == arr2[i] ){
j++;
i++;
}else if( arr1[j]>arr2[i]){
return false;
}
}
if(i<arr2.length){
return false;
}else{
return true;
}
}
isSubset(arr1,arr2) 输出的结果为false