Witam.
Mam do napisania krótki program w konsoli obliczający miejsca zerowe funkcji kwadratowej (ax^2 + bx + c). Od razu piszę, że nie mam z tym żadnego problemu, chcę się tylko zapytać o jedną rzecz, a mianowicie, który z pomysłów jest bardziej wydajny.
Wpadłem na pomysł, że po pobraniu parametrów a, b i c od użytkownika zamiast liczyć od razu deltę, to mogę sprawdzić parametr b:
Jeśli b == 0, to sprawdzamy a i c, jeśli mają takie same znaki, to delta ujemna i bez żadnych obliczeń wypisujemy, że brak rozwiązań, jeśli któreś z nich to zero, to delta jest zero i liczymy jedno miejsce zerowe, a jeśli zaś mają różne znaki, to delta dodatnia i liczymy oba miejsca zerowe.
Jeśli b != 0 -> to już wtedy liczymy deltę, sprawdzamy czy nie jest mniejsza od zera, jeśli tak, to brak rozwiązań, jeśli 0, to obliczamy jedno miejsce zerowe, jeśli większa od zera, to liczymy 2 miejsca zerowe.
Ten sposób jest dłuższy, ale obliczenia wykonujemy tylko wtedy, kiedy są potrzebne, jeśli funkcja nie ma miejsc zerowych, to nie robimy żadnych działań, co na chłopski rozum wydaje mi się bardziej wydajne.
Można też się nie bawić i od razu policzyć deltę, sprawdzić jej znak i obliczyć jedno lub dwa miejsca zerowe, bądź wypisać, że brak miejsc zerowych, jednak w tym przypadku, za każdym razem wykonujemy co najmniej jedno obliczenie.
Wiem, że w takim małym programie nie będzie to miało znaczenia, ale chcę się nauczyć pisać możliwie jak najbardziej WYDAJNE, a co za tym idzie - możliwie jak najszybsze w działaniu aplikacje poczynając od właśnie takich małych, najprostrzych programów.
Tak więc pytanie brzmi: który ze sposobów jest bardziej wydajny/szybszy?
Wiem, że niechętnie pomagacie ludziom, którzy najbardziej to by chcieli, żebyście całą aplikację napisali za nich, bo oni ,nie rozumieją", ale ja zadaję pytanie czysto teoretyczne, bo od strony kodowej problemów nie będzie
Z góry dzięki za odpowiedzi
Pozdrawiam.