Προς το περιεχόμενο

binarysearch


kostasgeto

Προτεινόμενες αναρτήσεις

Γράψτε συνάρτηση binarySearch σε code C που θα δέχεται σαν όρισμα το δυσδιάστατο πίνακα και ένα στοιχείο αναζήτησης key και θα επιστρέφει 1 αν βρέθηκε το στοιχείο μαζί με τη θέση του (i, j) και 0 αν δε βρέθηκε το στοιχείο. Η συνάρτηση θα πρέπει να υλοποιεί κατάλληλη παραλλαγή της δυαδικής αναζήτησης. Στη main ορίστε έναν πίνακα 11x11 αρχικοποιήστε τον με κατάλληλες τιμές και τεστάρετε τη συνάρτηση που φτιάξατε.

 

help please!

 

to vasiko provlhma mou einai to pws tha epistrepsw th thesh (i,j).

 

help!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 εβδομάδες αργότερα...

int binarysearch(int **T,int k)

{

int cnt;

int start;

int end;

int meso;

int i,j;

int found;

start = 1;

end = (N*N)/2+1; //tupos pou briski to plhthos ton stoixeiwn tou rombou

while ( start <= end )

{

meso = (start+end)/2;

cnt = 1;

i = N/2;

j = 0;

found = 0; //otan to found ginei 1 shmenei pos exei brethi h thesi tou stoixeiou kai termatizoun oi while

if (meso == 1) {l=i; g=j; found=1;} //se periptosh pou to stoixeio anazitisis einai to 1

while ( i!=j && found == 0 )

{

while (j < N/2 && found == 0)

{

i--; j++; cnt++;

if (cnt == meso) {found = 1; l=i; g=j;}

}

while (i < N/2 && found == 0)

{

i++; j++; cnt++;

if (cnt == meso) {found == 1; l=i; g=j;}

}

while (j > N/2 && found == 0)

{

i++; j--; cnt++;

if (cnt == meso) {found == 1; l=i; g=j;}

}

while (i > N/2 && found == 0)

{

if ( i == (N/2)+1)

{

i--; cnt++;

if (cnt == meso) {found == 1; l=i; g=j;}

}

else

{

i--; j--; cnt++;

if (cnt == meso) {found == 1; l=i; g=j;}

}

}

}

if ( k < meso )

end = meso-1;

else if ( k > meso )

start = meso+1;

else

return 1;

}

return 0;

}

 

//apanthsh tou erwthmato!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...