gpt4 book ai didi

c - 从两个数组中输出不同的元素

转载 作者:太空狗 更新时间:2023-10-29 15:23:27 25 4
gpt4 key购买 nike

我正在尝试从两个数组中输出不同的元素。因此,如果我有一个数组 A:{9, 0, 1} 并且 B 是 {0, 8, 1},我需要输出一个包含在第一组,但不包含在第二组中:9 想不出我应该如何将第一个数组中的所有元素与第二个数组进行比较。

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a[10],b[10],c,n,i,j;

printf("enter a number: ");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("Enter a[%d]: ",i+1);
scanf("%d",&a[i]);
}
printf("\n");
for(j=0;j<n;j++){
printf("Enter b[%d]: ",j+1);
scanf("%d",&b[j]);
}

for (i = 0; i < n; i++) {
printf("%d ", a[i]); }

printf("\n");

for (i = 0; i < n; i++) {
printf("%d ", b[i]); }
printf("\n");

return 0;
}

我想表达我的想法,但我认为这是愚蠢的:

 for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(a[i]!= b[j]){
c=a[i];
}
}
printf("%d ",c);
}

最佳答案

这可以使用二分搜索轻松解决。按照简单的步骤操作。

第 1 步:对第二个数组进行排序。

第二步:对于第一个数组的每个元素,在第二个数组中进行二分查找,如果不存在则打印,否则不打印。

时间复杂度是O(m log n),其中m是第一个数组的长度,n是第二个数组的长度。

关于c - 从两个数组中输出不同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41571939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com