ALGORITMUSOS FELADAT C-ben. Egy kis help kéne! Mi a baj?
Sziasztok!
Elvileg egy indexet kihagytam a feladat megoldásában. Segítsetek melyik lehet az!
A feladat a következő:
Adott egy A vektor. Mely indexű elemeket érinti a 69 érték keresése, ha bináris keresést alkalmazunk?
Ez én megoldásom 16,24,28,26
itt a forráskód is:
// itt a t[] tömb a feladatbeli A tömb!
#include <stdio.h>
int main(void) {
int t[31]={2, 5, 9, 11, 13, 17, 19, 21, 24, 28, 29, 30, 33, 37, 38, 40, 42, 45, 47, 49, 52, 56, 59, 63, 65, 67, 69, 70, 71, 72, 76};
int kozepso, also=1, felso=31;
int ertek=69;
while(also<=felso)
{
kozepso=(also+felso)/2;
printf("%i\n", kozepso);
if(t[kozepso]==ertek)
{
printf("the last index and its value: %i of %i\n", t[kozepso], kozepso);
break;
}
else {
if(t[kozepso]>ertek)
{
felso=kozepso-1;
}
else
{
also=kozepso+1;
}
}
}
return 0;
}
Nem tudsz végigjátszani fejben egy algoritmust?
Akkor meg kódold le, írasd ki.
Elvileg C-ben 0 -tól idexelik a tömböket.
also = 0, felso = tomb mérete - 1
A helyes megoldás: 15, 23, 27, 25 illetve maga a megtalált szám mivel azt is érinti a keresés: 26
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!