Citat:
Originalno napisao ivanhoe
@tata: mogu, nizove punim na pocetku, pa nije previse skupo da ih izsortiram
|
Онда можеш да нађеш пресек у линеарном времену, тј у једној петљи.
Ево ти и код (нађох га негде на интернету, изгледа ок на први поглед):
Kôd:
int[] a = {0,2,3,2,2,7,2,5,5,5,5,5,5};
int[] b = {0,0,0,0,3,7,3,2,2,2,4,5};
Arrays.sort(a);
Arrays.sort(b);
int i=0,j=0;
while (i<a.length && j<b.length) {
if (a[i]==b[j]) { // equal
int n=a[i];
System.out.println(n);
while (i<a.length && a[i]==n) i++; // skip equal
while (j<b.length && b[j]==n) j++; // skip equal
} else if (a[i]<b[j]) i++; // one is less
else j++; // the other is less
}