Pogledajte određenu poruku
Staro 24. 02. 2010.   #6
Dragi Tata
dinosaurus
Master
 
Avatar Dragi Tata
 
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
Dragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoro
Default

Citat:
Originalno napisao ivanhoe Pogledajte poruku
@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   
}

Poslednja izmena od Dragi Tata : 24. 02. 2010. u 23:48.
Dragi Tata je offline   Odgovorite uz citat