
Mam taki oto projekt:
Poniżej przedstawiam swoje wypociny w tak zwanym pseudokodzie C. Proszę o ocenę.Proszę napisać algorytm, który dla uporządkowanej niemalejąco tablicy jednowymiarowej, wyznacza krotność wystąpienia zadanej wartości. Uwaga: do tego celu należy między innymi użyć algorytmu wyszukiwania binarnego.
Kod: Zaznacz cały
Dane: Tab[n] tablica, n - rozmiar tablicy
x- szukana
Wynik: licznik - krotność wystąpień szukanej liczby
Zmienne pomocnicze:
p - index początkowy
k - index końcowy
s - index środkowy
pom - zmienna pomocnicza
p=0;
k=n-1;
s=(p+k)/2;
licznik=0
//Najpierw szukam binarnie:
while(p<=k && Tab[s] !=x) {
if (Tab[s]>x){
k=s-1;
}
else {
p=s+1;
}
//po znalezieniu liczby zapisuję index komórki do pom
pom=s+1;
//przeszukuję i zliczam wystąpienia
while (Tab[s]==x && s>=0) {
licznik=licznik+1;
s=s-1;
}
while (Tab[pom]=x && pom<=n-1) {
licznik=licznik+1;
pom=pom+1;
}
pokaż licznik;

Trzeba dodać na początek
Kod: Zaznacz cały
if (Tab[s]==x)
{nie mam pojęcia co napisać
}
else{
i tutaj wpisać całą pętlę while poszukiwania binarnego??
W miarę pisania pytania się mnożą.
Proszę o pomoc, ewentualnie o podpowiedź, gdzie jest błąd (choć kod wydaje mi się dobry).
Pozdrawiam.