#define m 3
#define n 4
//检查是否有重复元素
int CheckArr(int arr[m][n],int a,int b)
{
int i=0;
int j=0;
int p=0;
int q=0;
for(i=0;i<m;i++)
{
for(q=0;q<n;q++)
{
for(p=i;p<m;p++)
{
for(j=q;j<n;j++)
{
if(i==p&&q==j)
{
j++;
}
//0,1与其他元素相比;0,2与其他元素相比以此类推
if(arr[i][q]==arr[p][j])
{
//有重复元素返回0
return 0;
}
}
}
}
}
//无重复元素返回1
return 1;
}
int main()
{
int arr[m][n];
int i=0;
int j=0;
int c;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("输入数组元素:");
scanf("%d",&arr[i][j]);
}
}
c=CheckArr(arr,m,n);
if(!c)
{
printf("有重复元素\n");
}
else
printf("无重复元素\n");
return 0;
}
时间复杂度O((m*n)^2);第一个元素与其他元素最坏需要比较m*n-1;第二个元素需要m*n-2次;以此类推为等差数列,累加得时间复杂度为O((m*n)^2).