如何快速比较两个数组大小
例如:int[] a=new int[]{123,445,567};
int[] b=new int[]{123,556,677};
比较: 返回 -1,0,1
数组第一个数大,数组大
如果第一个相等,比较第二个,第二个大,数组大
如果第二个相等,比较第三个,第三个大,数组大。。。
。。。
要求:最快速度,最简洁代码,最小耗内存
[解决办法]
C++:
#include <iostream>
using namespace std;
int comp(int* a,int* b,int n)
{
if(a[0]<b[0])
{
return 1;
}
else if(a[0]>b[0])
{
return -1;
}
else if(n==1)
{
return 0;
}
else
{
return comp(a+1,b+1,n-1);
}
}
int main()
{
int a[]={123,556,677};
int b[]={123,556,666};
int r=comp(a,b,3);
cout<<r<<endl;
return 0;
}
int i=0;
while (i<n&&a[i]==b[i]) i++;
if(i==n) return 0;
return (a[i]-b[i])/abs(a[i]-b[i]);
#include <stdio.h>
int comparenTwoArray(int a[],int b[],int aLen,int bLen){
int i=0,j=0;
while(i<aLen&&j<bLen){
if(a[i]==b[j]){
i++;
j++;
}else{
return a[i]>b[j]?1:-1;
}
}
if(i==aLen&&j==bLen){
return 0;
}else{
return i==aLen?-1:1;
}
}
void main(){
int a[]={1,2,17,4,-1,1};
int b[]={1,2,8,4,-1};
printf("%d\n",comparenTwoArray(a,b,6,5));
}